我的问题是我无法更新对象数组的值......
代码是:
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
我不明白的是为什么不更新数组的值。当更新也是对象属性的number的值时。
但我想要的输出是:
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
答案 0 :(得分:2)
您每次在输出中打印array[0]
,而每个循环都在更新array[0]
。 array[1]
等等。
编辑:
您在noOfSms
结束时递增CheckingFun()
。因此,对于第一遍,您设置array[0] = 0
,但在到达println之前,noOfSms
已递增,现在为1.因此,您打印array[1]
,但尚未初始化。< / p>
答案 1 :(得分:0)
object.array[0]
您反复调用此功能三次
因此array [0]值为0
`object.array[i]`