自从我做了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;
}
答案 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 );
}