使用数组作为属性来修改它Java

时间:2014-06-20 19:25:28

标签: java

我的朋友在java编写了一个Breakout游戏。我知道C ++,它可以很好地转移到java。

尝试插入MultiBall砖时出现问题。

以下是我的功能的相关内容:

private Balle[] balle;
public BriqueMultiBalle(Balle[] bal) {
        super();
        balle = bal;
        SCORE = 100;
    }
public void touched() {
        visible = false;
        balle[Balle.getNInstance()].makeVisible();
    }

我没有收到任何错误,但是在调试时发现 balle 对应于空指针。我尝试使用这些不同的声明,但是,它们都没有工作:

1

    public BriqueMultiBalle(Balle[] bal) {
                super();
                for(int i = 0; i < 6; i++)
                    {
                         balle[i] = bal[i];
                    }
                SCORE = 100;
            }

2

public BriqueMultiBalle(Balle[] bal) {
            super();
            balle = new Balle[](bal);
            SCORE = 100;
        }

但是,这些方法不起作用。

谢谢,

Ghi102

1 个答案:

答案 0 :(得分:0)

你在balle上得到一个空指针,因为你从不初始化数组,你把它保留为

private Balle[] balle;

尝试初始化代码

balle = new Balle[bal.length];
for(int i = 0; i < bal.length; i++){
        balle[i] = bal[i];
}

这是我使用int数组编写的一个例子。相同的概念,只需将其应用于您的对象。

public static void main(String[] args) throws Exception {

    int[] arrayInts;
    int[] originalInts = { 1, 2, 3, 4, 5 };

    arrayInts = new int[originalInts.length];

    for(int i = 0; i < originalInts.length; i++){
        arrayInts[i] = originalInts[i];
    }

    originalInts[0] = 10;
    for (int i : arrayInts) {
        System.out.println(i);
    }
}