2013-03-09 126 views

回答

3

Java沒有複數類型。

要存儲/表示複數,你將不得不:

  • 創建自己的類型
  • 使用變量(即RE,林)
  • 或使用第三方庫

另外,就「轉換」雙精度到複數而言,雙精度值顯然只能表示複數的虛數或實數部分。所以你必須更具體地說明你的意思。如果您想雙重轉換爲等於0複數的實部等於你的雙重部和虛部的那麼應該是相當直截了當..

如果你想創建自己的類型它可能是這樣的:

class ComplexNumber{ 
    public ComplexNumber(double re, double im) 
    { 
     _re = re; 
     _im = im; 
    } 

    private double _re; 
    public double getReal(){ 
     return _re; 
    } 
    private double _im; 
    public double getImaginary(){ 
     return _im; 
    } 

    @overrides 
    public boolean equals(object other){ 
     if(other == null) 
      return false; 
     ComplexNumber n = (ComplexNumber)other; 
     return _re.equals(n._re) && _im.equals(n._im); 
    } 

    @overrides 
    public boolean getHashCode(){ 
     return _re.getHashCode()^_im.getHashCode(); 
    } 

    @overrides 
    public void toString(){ 
     return "(" + re.toString() + "," + im.toString() + ")"; 
    } 
} 

注意這個類有不可變的語義(即你不能修改它的內部狀態,一旦被實例化)。如果你打算表示一個複數,這是可取的。然後,您可以使用靜態方法來添加/減去/乘/除這些複數。

+0

哇!非常感謝!所以爲了澄清,我只需要將我的想象部分設置爲0? – lalalay17 2013-03-09 20:41:03

+0

您已經爲不可變語義提供了get方法誤導性名稱之一。將setReal()重命名爲getImaginary()。 – 2013-03-09 20:41:08

+0

點上@ j.karlsson - 這是一個錯字:) – 2013-03-09 20:47:11

0

我建議你建立一個複雜的數類,因爲你可能知道,你可以使用兩個座標值的平面表示複數,因此該類可以容納兩個雙打這些。然後查看如何劃分,乘,減和加複數,並且使方法劃分,乘,減,加,其中每一個都將一個複數對象作爲參數。

相關問題