这段代码有什么问题?(对象数组,空指针异常.)

S. *_*pta -1 java arrays nullpointerexception

我已经为abc类创建了一个对象数组,但只要我调用accept()从用户那里获取数据的代码,它就会给出一个空指针异常.

这是代码:

   class abc{
    int rollno,i;
    String name;
    public void accept(){
        Scanner sc=new Scanner(System.in);
        System.out.print("Enter roll no: ");
        rollno=sc.nextInt();
    }

    public void display(){
        System.out.println("Roll no: "+rollno);
    }

    public static void main(String[] gs){
        int i;
        abc a[]=new abc[10];

        for(i=0;i<10;i++){
            a[i].accept();    //This line gives null pointer exception
        }

        for(i=0;i<10;i++){
            a[i].display();
        }   
}
Run Code Online (Sandbox Code Playgroud)

谁能说出问题是什么?

NIN*_*OOP 5

因为a[i]null.默认情况下不会初始化.您正在创建一个包含abc10个元素的引用类型的数组.数组中的所有元素都将是null引用abc.在调用任何方法之前,您需要为每个引用分配一个具体的类型对象.

您需要在调用任何方法之前实例化对象:

for(i=0;i<10;i++)
{
   a[i] = new abc(); // instantiate it
   a[i].accept();
}
Run Code Online (Sandbox Code Playgroud)