2012-06-29 48 views
0

我的问题是我不能够更新对象数组的价值的价值...无法更新公用对象

的代码是:

public class GlobalVariable { 

    public int noOfSms = 0; 
    public CheckingClass object = new CheckingClass(); 
    public static void main(String[] args) { 
     GlobalVariable call = new GlobalVariable(); 
     call.driver(); 
    } 

    private void driver() { 
     for(int i = 0 ; i < 3 ; i++){ 
     object = CheckingFun(); 

    // System.out.println("The No Of Sms"+noOfSms); 
     System.out.println("Array Value"+object.array[noOfSms] + "  The number value"+object.number); 
     } 
    } 

    private CheckingClass CheckingFun() { 

     System.out.println("The No Of Sms "+noOfSms + "\n"); 
     object.array[noOfSms] = noOfSms; 
     object.number = noOfSms; 
     noOfSms = noOfSms + 1; 

     return object; 

    } 

另一类是:

public class CheckingClass { 
public int number ; 
public int[] array = new int [5]; 

} 

这里的对象是另一个类的对象。我的问题是在这条线

object.array[noOfSms] = noOfSms;

的输出如下

The No Of Sms 0 

Array Value0  The number value0 
The No Of Sms 1 

Array Value0  The number value1 
The No Of Sms 2 

Array Value0  The number value2 

什么,我不明白的是,为什么没有更新数组的值。当也是对象的属性的号码的值被更新时。

但我想输出是:

Array Value0  The number value0 
The No Of Sms 1 

Array Value1  The number value1 
The No Of Sms 2 

Array Value2 The number value2 
+1

我会建议张贴一些编译代码。 –

+3

你确实意识到每次使用'[noOfSms]'更新数组中的不同插槽,对吧? – Thomas

+0

@Thomas是的我想我的数组索引更新每次我进入该功能 – user1318860

回答

2

要打印,每次array[0]在你的输出,而每个循环更新array[0]array[1]

编辑:

你在​​末增加noOfSms。因此,对于第一遍,您设置了array[0] = 0,但在到达println之前,noOfSms已经增加,现在为1.因此,您打印的array[1]尚未初始化。

+0

我正在检查,所以将其更改为数组[0] ...但之前我正在做阵列[noOfsms],它仍然给我相同的输出:( – user1318860

+0

该问题的新编辑 – Thomas

0

object.array[0]您反复调用这个函数三次

所以数组[0]值为0

`object.array[i]` 
+0

thx我确定了它.. 。:)但问题是别的! – user1318860