为什么这会在'main'java.lang.NullPointerException中给出Exception

-1 java arrays nullpointerexception

我得到了一个NullPointerException.这就是全部,任何人都可以找出原因吗?

class one{
    String name;
}

class oneTestDrive{
    public static void main(String[] args){
        one[] obj = new one[2];

        obj[0].name = "IBM";
        obj[1].name = "AGM";

        System.out.println(obj[0].name);
        System.out.println(obj[1].name);

    }
}
Run Code Online (Sandbox Code Playgroud)

Sea*_*oyd 6

one[] obj = new one[2];
Run Code Online (Sandbox Code Playgroud)

这为两个one对象创造了空间,但实际上并没有创建它们!

像这样做:

one[] obj = new one[2];
obj[0] = new one();
obj[1] = new one();
obj[0].name = "IBM";
obj[1].name = "AGM";
Run Code Online (Sandbox Code Playgroud)

顺便说一句,根据Java语言命名约定,该类one应该是大写的.

当我们在它的时候,我会给你的One类一个构造函数:

class One{
    String name;

    public One(String name){
        this.name = name;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在您可以在一行中创建整个数组:

One[] obj = new One[]{new One("IBM"),new One("AGM")};
Run Code Online (Sandbox Code Playgroud)

(接下来我将该name字段设为私有,并添加一个getter方法等等)