java在Rational类中相互调用方法
这是我的类Rational的一个例子,我构建了它,并在每种方法中进行了数学和算法
public class Rational {
private int Numerator;
private int Denominator;
public Rational() {
Numerator = 1;
Denominator = 1;
}
public Rational(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException(" Cannot divide by zero ");
}
this.Numerator = a;
this.Denominator = b;
}
我的问题是,我不想每次都重复这些方法,就像你知道的那样,除法运算是与另一个有理数求反的乘法运算,但这里的问题是,我不知道如何调用除法中的乘法方法
public Rational multiply(Rational other) {
int numerator = this.Numerator * other.Numerator;
int denominator = this.Denominator * other.Denominator;
return new Rational(numerator, denominator);
}
public Rational divide(Rational other) {
other.invert();
return null;// where to call the multiply method ?
}
# 1 楼答案
Rational
几乎可以肯定是不可变的:这两个字段应该是最终字段原因是可变的
Rational
几乎不可能进行推理:你不能仅仅依靠程序中其他地方没有改变的值,所以你不知道计算的结果会是什么invert方法应该返回一个新的rational实例,然后可以将其传递给^{: