2016-02-19 189 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"); 

...

这样,你可以改变内部的方式值被存储/处理或计算,而程序的其余部分不知道它是如何完成的。