7-1 一元多项式的加法java
时间: 2024-10-11 07:09:07 浏览: 3
在Java中,一元多项式可以理解为一组系数和对应的变量幂次构成的数学表达式。对于一元多项式的加法,我们需要考虑的是将两个多项式系数对应位置相加,同时保持相同的变量。下面是一个简单的示例,展示如何创建一个抽象类`Polynomial`和两个具体类`Monomial`(单项式,只有一个项)以及`Linear`(线性多项式,有两个项),用于表示和计算一元多项式的加法:
```java
// 抽象类 Polynomial 定义基础属性和加法操作
abstract class Polynomial {
private String variable;
public Polynomial(String variable) {
this.variable = variable;
}
// 空的加法方法,需要在子类中实现
abstract Polynomial add(Polynomial other);
public String getVariable() {
return variable;
}
}
// 子类 Monomial 实现单项式
class Monomial extends Polynomial {
private double coefficient;
public Monomial(String variable, double coefficient) {
super(variable);
this.coefficient = coefficient;
}
@Override
Polynomial add(Monomial other) {
if (this.getVariable().equals(other.getVariable())) {
return new Monomial(this.getVariable(), this.coefficient + other.coefficient);
} else {
throw new IllegalArgumentException("Cannot add polynomials with different variables.");
}
}
}
// 子类 Linear 实现线性多项式
class Linear extends Polynomial {
private double a; // 常数项
private double b;
public Linear(String variable, double a, double b) {
super(variable);
this.a = a;
this.b = b;
}
@Override
Polynomial add(Linear other) {
Polynomial sum = new Linear(this.getVariable(), this.a + other.a);
// 如果有同名项,则合并它们
if (this.getVariable().equals(other.getVariable())) {
sum = new Linear(sum.getVariable(), this.b + other.b);
}
return sum;
}
}
// 使用示例
public static void main(String[] args) {
Monomial p1 = new Monomial("x", 2.0);
Monomial p2 = new Monomial("x", 4.5);
Polynomial sum = p1.add(p2); // 此处会返回新的 Monomial(x, 6.5)
Linear l1 = new Linear("x", 1, -3);
Linear l2 = new Linear("x", 2, 5);
Polynomial linearSum = l1.add(l2); // 这里可能会返回 Linear(x, 3, 2)
}
```