2013-07-08 44 views
1

如何製作一個構造函數來設置全局數組的長度?如何調用初始化數組長度的數組構造函數?

我已經嘗試了幾種方法來做到這一點,沒有成功。

實施例:

public Class{ 

    public Class(int length){ 
     double[] array = new double[length]; <- this is not global 

     L = length; 
    } 

    int L; 
    double[] array = new double[L]; <- this does not work 
} 

我需要與由構造確定的長度的陣列。

+0

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html –

+0

什麼有關聲明'雙[] array'構造的外側,然後創建該對象'數組=新double [length];'構造函數內部? –

+2

就像一個邊緣的評論:你不應該命名你的類類 –

回答

7

我認爲它是如此簡單:

public class MyClass{ 
    double[] array; 

    public MyClass(int length){ 
     array = new double[length]; 
    } 
} 

,我也做了代碼實際上編譯 :)你是缺少一些關鍵字等

如果你想在您的代碼中訪問length,使用array.length而不是將其冗餘存儲在單獨的字段中。

同樣打電話給你的班級Class是一個不好的選擇,即使作爲一個例子,因爲它與java.lang.Class衝突。

+3

對'java.lang.Class'備註爲+1 –

0

聲明數組爲成員變量。然後在構造函數中初始化它。

public class A{  
    private double[] array;  
    public Class(int length){ 
     array = new double[length]; 
     L = length; 
    }  
} 

你可以用第二種方式初始化它。不過,你需要使用一個固定長度

public class A{  
    private double[] array = new double[100]; // use fixed length 
    public Class(int length){ 
     array = new double[length]; 
     L = length; 
    }  
} 
-1

你可以做到這一點

public class Test { 
double[] array; 

     public Test (int length){ 
      array = new double[length]; <- this is not global 


} 
+0

請更正代碼,你從來沒有在這裏定義過一個'class',並且'Class'作爲classname的選擇是不正確的,因爲它與java.lang衝突。班級! – NINCOMPOOP

+0

@TheNewIdiot謝謝。沒意識到。 –

0

我不知道你想實現什麼,但爲什麼你不只是做這種方式:

public class Class{ 
    public Class(int length){ 
     this.array = new double[length]; // <- this is not global 
    } 
    double[] array; 
} 
相關問題