2016-02-19 160 views
-1

指定變量類型,我發現,其中的變量的盒產生通過一個類似的類中定義的一個示例:爪哇 - 在

public class CRandom { 
    public String var1; 
    public double var2; 
} 

然後用「class'型變量被創建:

CRandom box = new CRandom(); 

爲了這個盒子可以添加的所有變量:

box.var1 = "hello"; 
box.var2 = 1.234; 

反而增加單變量的,我想添加陣列,像這樣:

box.var1[0] = "hello"; 
box.var2[0] = 1.234; 

我希望有人能弄明白我的問題,我的理解太少了這樣的措辭恰當,不知道任何條款搜索。

+1

難道你不能讓'CRandom'中的字段是數組,如果這就是你想要的? – resueman

+0

'String []'..... – Idos

+0

甚至更​​靈活:使用['List' Implementation](https://docs.oracle.com/javase/8/docs/api/java/util/List。 HTML)。 – Turing85

回答

4

兩個選項:

CRandom[] crandoms = new CRandom[10]; 
crandoms[0] = new CRandom(); 
crandoms[0].var1 = "hello"; 
crandoms[0].var2 = 1.234; 

或者:

public class CRandom { 
    public String[] vars1; 
    public double[] vars2; 
} 
CRandom box = new CRandom(); 
box.vars1 = new String[10]; 
box.vars2 = new double[10]; 
box.vars1[0] = "hello"; 
box.vars2[0] = 1.234; 

根據什麼CRandom代表。

0

您正在破壞封裝規則,這是面向對象編程語言(如Java)的關鍵租戶。更好地封裝的變量和隱藏的一些接口方法這樣實現:

public class CDRandom { 

    List<String> var1= new ArrayList<>(); 
    List<String> var2= new ArrayList<>(); 

    private void addVar1(String val){ 
     var1.add(val); 
    } 
    private void addVar2(String val){ 
     var2.add(val); 
    } 
} 

...

CDRandom box= new CDRandom(); 
box.addVar1("someval"); 

...

這樣,你可以改變內部的方式值被存儲/處理或計算,而程序的其餘部分不知道它是如何完成的。