2014-02-05 4 views
-2

Продолжайте получать эту ошибку, извините, я новичок в Java.Ошибка Java.lang.NullPointerException в Java-программе

Исключение в потоке "основного": java.lang.NullPointerException
на assignment01.Student.addGrade (Student.java:28)
в assignment01.GpaTest.main (GpaTest.java:11)

package assignment01; 

    public class Grades 
    { 
     private double qualPts; 
     private int numCred; 

     public double getGPA() 
     { 
      if(numCred!=0) 
      { 
       return(qualPts/numCred); 
      } 
      return numCred; 
     } 

     public void addGrade(int creds, double grade) 
     { 
      grade+=creds+numCred; 
      qualPts+=creds*grade; 
     } 

     public int getNumCred() 
     { 
      return numCred; 
     } 
    } 

.

package assignment01; 

public class Student 
{ 
    private String name; 
    private String bNumber; 
    private Grades grades; 

    public Student(String name, String bNumber) 
    { 
     this.name=name; 
     this.bNumber=bNumber; 
    } 

    public void addGrade(int creds, double grade) 
    { 
     grades.addGrade(creds, grade); 

    } 

.

package assignment01; 

public class GpaTest { 

    public static void main(String[] args) 
    { 
     Student theStudent= new Student("Ethan","00000000"); 
     int CREDITS_ENROLLED1=4; 
     double GRADE1=90; 
     theStudent.addGrade(1, 100); 
     theStudent.addGrade(CREDITS_ENROLLED1,GRADE1); 
     System.out.println("Determining the grades of student named Ethan."); 
     System.out.println("Ethan has a grade of 90."); 
    } 
} 
+0

Отформатируйте свой код. Также научитесь использовать отладчик. Вам не нужно будет публиковать этот вопрос, если вы используете отладчик. –

ответ

4

grades переменная не инициализирована. Вы должны инициализировать его внутри Student конструктора:

public Student(String name, String bNumber) 
{ 
    this.name=name; 
    this.bNumber=bNumber; 
    this.grades = new Grades(); 
} 

Вы можете инициализировать qualPts и numCred, а

+0

Это работает. Итак, что бы вы назвали частными классами классов? Является ли это экземпляром класса Grades, называемым классами? Почему я должен инициализировать его внутри конструктора? – user3200451

0

Инициализировать объект «ранги».

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