1

我在创建一个对象数组然后为每个对象设置变量时遇到了一些问题。我创建了数组,然后循环遍历设置变量的数组,但似乎每次循环遍历它都会覆盖所有以前的变量。

这似乎是一段基本的代码和一个非常不规则的错误......

public class Test{

    Bubble[] bubble = new Bubble[2];

    public static void main(String[] args)
    {

        bubble = new Bubble[2];

        bubble[0] = new Bubble();
        bubble[0].setDegree(360);

        bubble[1] = new Bubble();
        bubble[1].setDegree(180)

        System.out.println(bubble[0].printDegree());
        System.out.println(bubble[1].printDegree());
    }

}

这就是它的基础,另一个类只是设置变量并使用“bubble[i].setDegree(int);”给它们赋值。

程序的输出给了我:

180
180

我应该得到的是:

360
180

我不知道我是否只是生疏了,遗漏了一些完全明显的东西,还是出了什么大问题。

4

2 回答 2

8

我看到的唯一可能性是你在课堂上的专业学位是。由于所有实例共享一个静态字段,因此您所做的任何更改都将反映在所有实例中。或者你的or方法被破坏了(正如@JonSkeet 在评论中指出的那样)。BubblestaticsetDegree()printDegree()

于 2013-09-02T16:49:00.613 回答
1

似乎类气泡中的变量持有 degree 的值是static,即它存在于每个类而不是每个对象。

您也可以尝试澄清一下:

    bubble[0] = new Bubble();
    bubble[0].setDegree(360);

    System.out.println(bubble[0].printDegree());

    bubble[1] = new Bubble();
    bubble[1].setDegree(180)


    System.out.println(bubble[1].printDegree());
于 2013-09-02T16:49:36.860 回答