自从我做完Java已经3年了,所以我很生锈。
问题:二次方程是a(x ^ 2)+ b(x)+ c(a,b,c是系数)
public static Quadratic sum(Quadratic q1, Quadratic q2)
后置条件:返回值是通过将q1和q2相加而得到的二次表达式。例如,返回值的C系数是q1的c系数和q2的系数之和。我被困在试图记住如何将这些二次项相加然后返回它们的总和。这就是我所拥有的。我很确定我会稍作改动,并做了很多更改,但是我正在寻找一些指导。
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;
}
最佳答案
您应该返回一个新的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 看起来像这样:
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()方法。我建议使用上面介绍的第一个解决方案。
关于java - 二次和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25776067/