小编典典

在 Java 中创建对象数组

all

我是 Java 新手,当时在 Java 中创建了一个对象数组。

例如,我有一个 A 类 -

A[] arr = new A[4];

但这只是创建指向A而不是 4
个对象的指针(引用)。这个对吗?我看到当我尝试访问创建的对象中的函数/变量时,我得到一个空指针异常。为了能够操作/访问我必须这样做的对象:

A[] arr = new A[4];
for (int i = 0; i < 4; i++) {
    arr[i] = new A();
}

这是正确的还是我做错了什么?如果这是正确的,那真的很奇怪。

编辑:我觉得这很奇怪,因为在 C++ 中你只是说 newA[4]并且它创建了四个对象。


阅读 68

收藏
2022-06-21

共1个答案

小编典典

这是对的。

A[] a = new A[4];

…创建 4 个A引用,类似于这样做:

A a1;
A a2;
A a3;
A a4;

现在你不能没有这样的a1.someMethod()分配a1

a1 = new A();

同样,对于数组,您需要这样做:

a[0] = new A();

…在使用它之前。

2022-06-21