二次和的总和

时间:2014-09-10 22:24:33

标签: java

自从我做了java以来​​已经3年了,所以我很生气。

  

问题:二次方程是a(x ^ 2)+ b(x)+ c(a,b,c是系数)

public static Quadratic sum(Quadratic q1, Quadratic q2)
     

后置条件:返回值是通过添加q1和q2获得的二次表达式。例如,返回值的C系数是q1> s c系数和q2&#39系数之和。

我试图记住如何添加这些样方并然后返回它们的总和。这就是我所拥有的。我很确定我已经做了很多改变,但是我正在寻找一些指导。

public static Quadratic sum(Quadratic q1, Quadratic q2){
    int newA =(q1.a + q2.a);
    int newB =(q1.b + q2.b);
    int newC =(q1.c + q2.c);   
    return; 
}

2 个答案:

答案 0 :(得分:2)

您应该返回一个新的Quadratic对象,其中包含各个系数的总和。 有不止一种方法可以做到这一点。这是一个:

public static Quadratic sum(Quadratic q1, Quadratic q2) {
    int newA =(q1.a + q2.a);
    int newB =(q1.b + q2.b);
    int newC =(q1.c + q2.c);   
    return new Quadratic(newA, newB, newC); 
}

为此,您需要在Quadratic类中使用以下构造函数:

Quadratic(int a, int b, int c) {
    this.a = a;
    this.b = b;
    this.c = c;
}

所以你的课程看起来像是:

class Quadratic {
    int a;
    int b;
    int c;
    Quadratic(int a, int b, int c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }        
}

如果您不想添加新的构造函数,可以在返回新的Quadratic之前单独指定值。这将是实现同样目标的另一种方式:

public static Quadratic sum(Quadratic q1, Quadratic q2){
    Quadratic result = new Quadratic(); 
    result.a =(q1.a + q2.a);
    result.b =(q1.b + q2.b);
    result.c =(q1.c + q2.c);   
    return result;
}

修改

根据您的评论,如果您想使用setQuadratic()方法,则需要将其放在Quadratic课程中。像这样:

class Quadratic {
    int a;
    int b;
    int c;

    void setQuadratic(int newA, int newB, int newC) {
        a = newA;
        b = newB;
        c = newC;
    }        
}

// ... rest of your code

public static Quadratic sum(Quadratic q1, Quadratic q2){
    Quadratic result = new Quadratic();
    int newA =(q1.a + q2.a);
    int newB =(q1.b + q2.b);
    int newC =(q1.c + q2.c);   
    result.setQuadratic(newA, newB, newC);
    return result; 
}

然而,让构造函数在一个步骤中进行实例化和初始化(即new Quadratic(newA, newB, newC))比使用两个方法更简单/更清晰:一个实例化的构造函数和一个初始化的set()方法,这是什么你现在有。

我建议使用上面提到的第一个解决方案。

答案 1 :(得分:0)

public static Quadratic sum(Quadratic q1, Quadratic q2){
    return new Quadratic( q1.a+q2.a , q1.b+q2.b , q1.c+q2.c ); 
}