【发布时间】:2015-09-22 01:48:26
【问题描述】:
我是 Java 新手,我正在尝试创建 ADT。我的 ADT 涉及通过输入分子和分母来创建和处理分数。我希望我的一种方法将两个分数加在一起并根据两个总和的 gcd 返回一个简化的分数。我遇到的问题是实例化两个分数(分子和分母)的分量。该方法应占其他部分,表示为public Rational add(Rational other)。我分配的第一个变量是
int d1 = this.denominator;
int d2 = other.denominator;
但这似乎不起作用。以下是目前为止的方法:
public Rational add(Rational other){
int d1 = this.denominator;
int d2 = other.denominator;
int dtotal = d1*d2;
int n1 = this.numerator*d2;
int n2 = other.numerator*d1;
int ntotal = n1+n2;
if(ntotal>dtotal){
for(int i=1; i<=ntotal; i++){
if(ntotal%i==0 && dtotal%i==0){
gcd=i;
}
}
}else if(dtotal>ntotal){
for(int i=1;i<=dtotal;i++){
if(dtotal%i==0 && ntotal%i==0){
gcd=i;
}
}
}else if(dtotal==ntotal){
gcd=numerator;
}
numerator = ntotal/gcd;
denominator = dtotal/gcd;
}
【问题讨论】:
-
你能提供你写的代码sn-p吗?
-
我已编辑问题以包含整个方法。我想我还应该提到,我已经在方法之外将分子、分母和 gcd 实例化为
int numerator;、int denominator;和int gcd; -
您是否在
Rational类中定义了成员变量denominator和numerator。 -
能否提供完整的课程。因为添加这些成员变量后,我没有收到任何编译错误。
-
到目前为止,我已经添加了整个课程
标签: java adt instantiation