2016-03-04 20 views
0

這些是我應該遵循的指令:構造函數,需要和數組以及值列表

向量類:將實數向量保存爲一維數組。 構造函數: (1)獲取一個雙精度數組並轉換爲一個Vector (2)將逗號分隔雙打作爲列表並將它們轉換爲Vector。

package p1; 

public class Vector { 

    double yourArray[]=new double[4]; 

    public Vector(double yourArray[]){ 
    this.yourArray=yourArray; 

    } 
} 

作爲一個列表逗號分隔雙打和雙打數組有什麼區別?他們不是同一件事嗎?如果沒有,我該如何在Vector類中編寫這段代碼?

+0

那麼,你能分辨出'new Vector(1.0,2.0,3.0)'和'new Vector(myDoubleArray)'之間的區別嗎? (假設'myDoubleArray'的類型是'double []'。) –

+0

什麼?我不明白 –

回答

0

你的代碼需要容納兩個以下的構造函數調用:

Vector myVector = new Vector(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0); 

double[] myArray = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0}; 
Vector myVector = new Vector(myArray); 

如果你可以創建一個Vector無論使用這兩個構造模式,你贏了。這就是它要求的。

你可以做到這一點與下面的構造函數簽名:

public class Vector { 
    double[] yourArray; 

    public Vector(double... yourArray) { 
    this.yourArray = yourArray; 
    } 
} 

可變參數模式與三個點(「雙... yourArray」)實際上在幕後轉換到一個數組(「雙[ ] yourArray「)。因此,您可以使用一個構造函數來容納這兩種調用模式。

+0

,但如果它說在測試類中重複myVector? –

+0

但我怎樣才能創建這個分離的兩個一維數組矩陣? –

+0

在你的測試類中,你可能會聲明'myVector'兩次。要麼使用多個測試方法,要麼選擇一個不同的變量名稱。 –

相關問題