Java对象数组
我在创建一个对象数组,然后为每个对象设置变量时遇到了一些问题。我创建了数组,然后通过设置变量的数组进行循环,但每次循环都会覆盖以前的所有变量 这似乎是一段基本的代码和一个非常不规则的bugJava对象数组,java,arrays,object,Java,Arrays,Object,我在创建一个对象数组,然后为每个对象设置变量时遇到了一些问题。我创建了数组,然后通过设置变量的数组进行循环,但每次循环都会覆盖以前的所有变量 这似乎是一段基本的代码和一个非常不规则的bug public class Test{ Bubble[] bubble = new Bubble[2]; public static void main(String[] args) { bubble = new Bubble[2]; bubble
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
我不知道我是不是太生疏了,错过了一些非常明显的东西,还是出了严重的问题。我看到的唯一可能是你在
泡泡
课程中的专业学位是静态的。由于所有实例都共享一个静态字段,因此您所做的任何更改都将反映在所有实例中。或者你的setDegree()
或printdege()
方法被破坏(正如@JonSkeet在评论中指出的)。我看到的唯一可能性是你在Bubble
类中的字段学位是静态的。由于所有实例都共享一个静态字段,因此您所做的任何更改都将反映在所有实例中。或者您的setDegree()
或printdege()
方法被破坏(正如@JonSkeet在评论中指出的)。看起来类气泡中保存度值的变量是静态的。E它存在于每个类,而不是每个对象
你也可以试着澄清一下:
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());
类气泡中保存度值的变量似乎是静态的。E它存在于每个类,而不是每个对象
你也可以试着澄清一下:
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());
请显示类气泡的定义。这不是您的实际代码-它现在甚至不会编译,因为您试图从静态方法访问实例变量(Bubble
)。请发布气泡类。@captain:请使用适当的词语nyr
对我来说毫无意义,即使是以英语为母语的人。我不敢想象,对于一个只把英语作为第二或第三语言的人来说,这将是多么令人费解。请给出类气泡的定义。这不是你的实际代码,因为你试图访问一个实例变量(Bubble
)从静态方法。请发布气泡类。@captain:请使用适当的词语nyr
对我来说毫无意义,即使是以英语为母语的人。我不敢想象,对于一个只把英语作为第二或第三语言的人来说,这是多么令人费解……你比我快了30秒!:DCould be setDegree()和printDegree()使用不同的实例变量,默认值为180。@KennyTM。你所说的默认值是180是什么意思?@RohitJain:类泡泡{int mDegree=180;…}
(Jon Skeet所说的一个例子。)@KennyTM。当setDegree
方法没有实际执行它应该执行的操作时,这将是一个问题……您比以前快了30秒!:DCould be setDegree()和printDegree()使用不同的实例变量,默认值为180。@KennyTM。你所说的默认值是180是什么意思?@RohitJain:类泡泡{int mDegree=180;…}
(Jon Skeet所说的一个例子。)@KennyTM。当setDegree
方法没有实际执行它应该执行的操作时,这就是问题所在。谢谢您的回复。似乎是static导致了一个问题。希望你的问题向你展示了静态和非静态的区别。当然,这是我一直在犹豫的事情,但现在有了更清晰的理解。干杯。谢谢你的回复。似乎是static导致了一个问题。希望你的问题向你展示了静态和非静态的区别。当然,这是我一直在犹豫的事情,但现在有了更清晰的理解。干杯