ima*_*txc 0 java math class subclass parent
测试这些类时我的最终结果返回零/零,但它应该返回一个实际的答案.这是代码的一小部分示例.
父类:
子类:(这里存在问题 - 顺便说一下,主要部分用于测试结果.之后我将把它拿出来.)
public class HW6Fraction extends Fraction {
public HW6Fraction(int num, int denom) {
super();
}
public Fraction add(Fraction f) { // Add method
int num = getNumerator() + f.getNumerator();
int denom = getDenominator() + f.getDenominator();
Fraction result = new Fraction(num, denom);
return result;
}
public static void main(String[] args) {
HW6Fraction F1 = new HW6Fraction(4, 7);
HW6Fraction F2 = new HW6Fraction(1, 3);
Fraction F3 = F1.add(F2);
System.out.println("sum=" + F3.getNumerator() + "/" + F3.getDenominator());
}
}
Run Code Online (Sandbox Code Playgroud)
家长班
public class Fraction {
private int numerator; //Numerator of fraction
private int denominator; //Denominator of fraction
public Fraction(int num, int denom) { //Constructor
numerator = num;
denominator = denom;
}
public Fraction() { //Constructor w/ no parameters
new Fraction(0, 1);
}
public Fraction(int num) { //Constructor w/ numerator parameter
numerator = num;
int denom = 1;
}
public int getNumerator() { //getNumerator method
return numerator;
}
public int getDenominator() { //getDenominator method
return denominator;
}
public void setNumerator(int num) { //setNumerator method
numerator = num;
}
public void setDenominator(int denom) { //setDenominator method
denominator = denom;
}
public Fraction add(Fraction f) { //Add method
int num = numerator * f.getDenominator() + f.getNumerator() *
denominator;
int denom = denominator * f.getDenominator();
Fraction result = new Fraction(num, denom);
return result;
}
public Fraction subtract(Fraction f) { //Subtract method
int num = numerator * f.getDenominator() - f.getNumerator() *
denominator;
int denom = denominator * f.getDenominator();
Fraction result = new Fraction(num, denom);
return result;
}
public Fraction multiply(Fraction f) { //Multiply method
int num = numerator * f.getNumerator();
int denom = denominator * f.getDenominator();
Fraction result = new Fraction(num, denom);
return result;
}
public Fraction divide(Fraction f) { //Divide method
int num = numerator * f.getDenominator();
int denom = denominator * f.getNumerator();
Fraction result = new Fraction(num, denom);
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
您没有将参数传递给super构造函数:
public HW6Fraction(int num, int denom){
super();
}
Run Code Online (Sandbox Code Playgroud)
应该:
public HW6Fraction(int num, int denom){
super(num, denom);
}
Run Code Online (Sandbox Code Playgroud)
否则父类将不会初始化实例变量(它们0确实是).