2012-06-29 25 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