我正在做一個非常基本的複雜數字類Java,但是當我測試我的add和multiply函數時,我沒有得到我期望的結果。我不明白什麼是錯的或如何解決它。在Java中添加和乘法函數返回錯誤結果
當我運行程序我得到以下輸出:
A + B:ComplexNumber @ 1540e19d
A * B:ComplexNumber @ 677327b6
我應該得到適當的兩個複數的加法和乘法(遵循複數的規則當然)
任何幫助將不勝感激!提前致謝。
下面是代碼:
public class ComplexNumber {
private double real;
private double imaginary;
public ComplexNumber(double r, double i) {
real = r;
imaginary = i;
}
public double real() {
return real;
}
public double imaginary() {
return imaginary;
}
public ComplexNumber add(ComplexNumber c) {
double newr = real + c.real();
double newi = imaginary + c.imaginary();
return new ComplexNumber(newr, newi);
}
public ComplexNumber multiply(ComplexNumber c) {
double newr = real*c.real() - imaginary*c.imaginary();
double newi = real*c.imaginary() + imaginary*c.real();
return new ComplexNumber(newr, newi);
}
public static void main(String[] args) {
ComplexNumber c1 = new ComplexNumber(1.0, 2.0);
ComplexNumber c2 = new ComplexNumber(-1.0, 0.5);
String c1plusc2 = c1.add(c2).toString();
String c1timesc2 = c1.multiply(c2).toString();
System.out.println("a+b :" + c1plusc2);
System.out.println("a*b :" + c1timesc2);
}
}
你真的應該進入正常格式化你的代碼的習慣。特別是因爲現在有很多編輯器/ IDE會自動執行它。否則,你會對閱讀它的人表示不敬。 –
@SergeyTachenov我實際上想要做到這一點,但爲了提交我的代碼爲每一行,需要4個縮進,並且它花了我一直。關於如何將代碼全部4個縮進一次移動到右側的任何技巧?一次只做一行是一件麻煩事! –
我通常只是在我的IDE中選擇它(NetBeans,但其他許多工具都可以),按Tab鍵將其右移,然後按Ctrl-C和Ctrl-Z(撤消移位)。但是真的,即使沒有(假設你沒有IDE),如果格式正確,那麼只有第一行和最後一行('class'和'}')會被搞亂。然後,只需在這些行中添加4個空格,並保持其餘行不變,並且最終得到幾乎格式正確的代碼(如果只有一個類,那麼沒有人會介意這兩行)。 –