【问题标题】:Unable to update the value of a public object无法更新公共对象的值
【发布时间】:2012-06-29 13:33:40
【问题描述】:

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

代码是:

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

【问题讨论】:

  • 我建议发布一些可编译的代码。
  • 您确实意识到每次使用 [noOfSms] 更新数组中的不同插槽,对吧?
  • @Thomas 是的,我希望每次进入该函数时都更新数组的索引
  • 在你给我一个不好的问题之前给我-1....请回答它,以便我在对我的声誉造成损害后得到一些有用的东西!!!!
  • 发布一些可编译的代码。您发布了不可编译的代码,并且输出不是来自您发布的代码。您希望我们如何发现问题所在?你也没有说你期望什么输出。只有你得到的。

标签: java global-object


【解决方案1】:

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

编辑:

CheckingFun() 的末尾增加noOfSms。所以对于第一遍,你设置了array[0] = 0,但是在你到达你的println之前,noOfSms已经增加了,现在是1。所以你打印了array[1],它还没有被初始化。

【讨论】:

  • 我正在检查,所以将其更改为 array[0]... 但以前我在做 array[noOfsms] 并且它仍然给我相同的输出:(
【解决方案2】:

object.array[0]你重复调用这个函数3次

所以array[0]的值为0

`object.array[i]`

【讨论】:

  • thx 我确实弄明白了...:) 但问题出在其他问题上!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 2018-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
  • 1970-01-01
相关资源
最近更新 更多