gpt4 book ai didi

java - 无法更新公共(public)对象的值

转载 作者:行者123 更新时间:2023-12-02 07:43:28 25 4
gpt4 key购买 nike

我的问题是我无法更新对象数组的值...

代码是:

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

最佳答案

您正在打印 array[0]每次在输出中,当每个循环更新时 array[0]array[1]

编辑:

您正在递增noOfSmsCheckingFun() 末尾。因此,对于第一遍,您设置 array[0] = 0 ,但在到达 println 之前,noOfSms已增加,现在为 1。因此您打印 array[1] ,尚未初始化。

关于java - 无法更新公共(public)对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11262777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com