2016-10-13 3 views
1
public class HelloWorld{ 


class Student { 
int marks; 

} 


public static void main(String []args){ 

Student studentArray[] = new Student[2]; 
studentArray[0].marks = 100; 
studentArray[1].marks = 75; 

int m=0; 
m = studentArray[0].marks; 

System.out.println(m); 


    } 
} 

компилируется без проблем, но когда я исполню его, я получаю ошибку пустого указателя исключений следующим образом:Это правильный способ инициализации массива объектов?

Исключение в потоке «основного» .lang.NullPointerException на HelloWorld.main (HelloWorld. java: 13)

Может ли кто-нибудь помочь мне найти причину?

ответ

0

Что-то вроде этого является то, что вы ищете:

public class HelloWorld{ 


class Student { 
    int marks; 
} 


public static void main(String []args){ 

     Student studentArray[] = new Student[2]; 
     studentArray[0] = new Student(); // .marks = 100; 
     studentArray[1] = new Student(); // .marks = 75; 
     studentArray[0].marks = 100; 
     studentArray[1].marks = 75; 

     int m=0; 
     m = studentArray[0].marks; 

     System.out.println(m); 
    } 
} 
3

Вы создали массив размером два, который предназначен для хранения объектов-учеников с помощью Student studentArray[] = new Student[2];, так что теперь у вас есть пустой контейнер. Затем вы попытались получить доступ к элементу этого пустого контейнера, который выбрал исключение нулевого указателя. Вы должны поместить объекты Student в свой контейнер Student для доступа к элементам контейнеров.

0
public class HelloWorld{ 

public static void main(String []args){ 

     Student studentArray[] = new Student[2]; 
     HelloWorld helloWorld = new HelloWorld(); 

     for(int i=0; i<studentArray.length; i++) { 
      studentArray[i] = helloWorld.new Student(); 
     } 

     studentArray[0].marks = 100; 
     studentArray[1].marks = 75; 

     int m=0; 
     m = studentArray[0].marks; 

     System.out.println(m); 
    } 

class Student { 
    int marks; 
} 

} 

Вы получаете NullPointerException, потому что вы не инициализируются объекты универсиады в рамках studentArray. Затем вы пытаетесь получить доступ к чему-то, что не существует, поэтому ошибка.

Вышеупомянутый код должен исправить вашу ошибку.

Смежные вопросы