一个对象中的方法会影响另一个JAVA对象

一个对象中的方法会影响另一个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

我目前有一个名为cube的类(它代表一个2x2x2的魔方)。在这个类中,我有以下代码创建一个立方体数组(组成魔方的立方体),然后初始化它们。up()方法用于将立方体顶部顺时针旋转90度:

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];