自从我做完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/

10-11 02:37