一个对象中的方法会影响另一个JAVA对象
我目前有一个名为cube的类(它代表一个2x2x2的魔方)。在这个类中,我有以下代码创建一个立方体数组(组成魔方的立方体),然后初始化它们。up()方法用于将立方体顶部顺时针旋转90度:一个对象中的方法会影响另一个JAVA对象,java,arrays,object,Java,Arrays,Object,我目前有一个名为cube的类(它代表一个2x2x2的魔方)。在这个类中,我有以下代码创建一个立方体数组(组成魔方的立方体),然后初始化它们。up()方法用于将立方体顶部顺时针旋转90度: public class cube { private static cubie[] cornerCube = new cubie[8]; public void initialise(){ for(int i=0;i<=7;i++){ cornerCub
public class cube {
private static cubie[] cornerCube = new cubie[8];
public void initialise(){
for(int i=0;i<=7;i++){
cornerCube[i] = new cubie();
cornerCube[i].setPos(i);
cornerCube[i].setOrient(0);
}
}
public void up(){
for(int i=0;i<=7;i++){
if(cornerCube[i].getPos()<=3){
cornerCube[i].setPos((cornerCube[i].getPos()+3)%4);
}
}
}
}
当我尝试在程序的主要部分执行以下代码时,出现问题:
public static void main(String[] args) {
cube cube1 = new cube();
cube cube2 = new cube();
cube1.initialise();
cube2.initialise();
cube1.up();
cube1.print();
System.out.println("...");
cube2.print();
}
我没有包括print方法,因为它很长,我已经对它进行了彻底的调试,但它所做的是打印出当前立方体的状态,给出每个立方体的位置和方向
您所期望的是两种不同的状态,一种是顶部顺时针旋转,另一种是立方体的初始状态。我实际得到的是立方体的两个相同的状态,它们的顶部都是顺时针旋转的
对不起,这篇文章太长了,如果有人能解释一下这个问题,我将非常感激
-T对于整个
cube
类,您只有一个cornerCube
数组,因为变量标记为static
。改变
public class cube {
private static cubie[] cornerCube = new cubie[8];
到
因此,对于每个
cube
实例,您将得到一个cubie
s数组,以大写字母开始您的类名。这只是惯例,不是必须的。你能添加你期望的输出和实际输出吗?太好了!非常感谢。一般来说,我对Java编程和OOP都是新手,所以我对这些东西还是有点模糊。
public class cube {
private static cubie[] cornerCube = new cubie[8];
public class cube {
private cubie[] cornerCube = new cubie[8];