我正在編寫一個程序,其中我定義了類Function,並且有方法可以對它們執行算術運算。在輸出中,在我的FractionDemo類中,遇到了試圖編寫輸出的問題,得到@ 12f9de等等東西。所以我知道我需要重寫toString
函數,但我遇到了無法找到符號錯誤。在Java程序中重寫方法toString的問題
這裏是我的代碼:
功能:
public class Fraction
{
int numerator;
int denominator;
public Fraction(int numerator, int denominator)
{
this.numerator = numerator;
this.denominator = denominator;
}
public void setNumerator(int numerator)
{
this.numerator = numerator;
return;
}
public void setDenominator(int denominator)
{
this.denominator = denominator;
return;
}
public int getNumerator()
{
return numerator;
}
public int getDenominator()
{
return denominator;
}
public static Fraction add(Fraction fraction1, Fraction fraction2)
{
Fraction fraction3 = new Fraction(((fraction1.getNumerator() * fraction2.getDenominator()) + (fraction1.getDenominator() * fraction2.getNumerator())), (fraction1.getDenominator() * fraction2.getDenominator()));
return fraction3;
}
public static Fraction subtract(Fraction fraction1, Fraction fraction2)
{
Fraction fraction3 = new Fraction(((fraction1.getNumerator() * fraction2.getDenominator()) - (fraction1.getDenominator() + fraction2.getNumerator())), (fraction1.getDenominator() * fraction2.getDenominator()));
return fraction3;
}
public static Fraction multiply(Fraction fraction1, Fraction fraction2)
{
Fraction fraction3 = new Fraction((fraction1.getNumerator() * fraction2.getNumerator()), (fraction1.getDenominator() * fraction2.getDenominator()));
return fraction3;
}
public static Fraction divide(Fraction fraction1, Fraction fraction2)
{
if (fraction2.getNumerator() != 0)
{
Fraction fraction3 = new Fraction((fraction1.getNumerator() * fraction2.getDenominator()), (fraction1.getDenominator() * fraction2.getNumerator()));
return fraction3;
}
else throw new IllegalArgumentException("Division by Zero");
}
}
FractionDemo:
public class FractionDemo
{
public static void main(String[] args)
{
Fraction fraction1 = new Fraction(4,7);
Fraction fraction2 = new Fraction(5,6);
Fraction fractionSum = Fraction.add(fraction1, fraction2);
System.out.println(fractionSum);
Fraction fractionDif = Fraction.subtract(fraction1, fraction2);
System.out.println(fractionDif);
Fraction fractionProd = Fraction.multiply(fraction1, fraction2);
System.out.println(fractionProd);
Fraction fractionDividend = Fraction.divide(fraction1, fraction2);
System.out.println(fractionDividend);
}
public String toString()
{
return ("The result is: " + numerator + "/" + denominator);
}
}
無論如何,有沒有什麼方法可以讓我得到的輸出被正確格式化?它說它無法在FractionDemo底部的toString部分找到我的變量。無論我使用變量名稱,函數調用如[fractionSum.getNumerator],還是其他任何東西。我馬上說,我並不真正瞭解重要的toString事情,我對Java很新。
讓我知道是否應該添加任何東西。
添加實際的錯誤消息 –