Как ro отобразить массив из конструктора, используя метод display? - PullRequest
0 голосов
/ 02 апреля 2019

Я пытался использовать метод display для печати массива String, созданного в contstructor, но он не работает ....

class Person{
    public String givenName;
    public String lastName;
    public int age;
    public String gender;
    public String citizenship;
    public String[] students;

    public Person(){
        String[] students = {"Jae Choi", "Su Wu", "Harry Potter"};
        this.students = students; 
        this.givenName = "Jae";
        this.lastName = "Choi";
        this.age = 27;
        this.gender = "male";
        this.citizenship = "Korea";
    }
}


class Student extends Person{
    public double[] marks;
    public String [] diciplines;
    public int i;

    public Student(){
        double marks[] = {95.0, 50.5, 75.0};
        String diciplines[] = {"Supplementary class", "Consultation", "Extra homework"};
            for (i = 0; i < marks.length; i++){
                this.marks = marks;
                System.out.println("Student name: " + this.students[i] + " / Mark: " + this.marks[i]);
            }
    }

public void displayDisciplines(){
        String diciplines[] = {"Supplementary class", "Consultation", "Extra homework"};
        for (int i = 0; i < diciplines.length; i++){
            System.out.println("Student name: " + this.students[i] + " / Dicipline: " + this.diciplines[i]);
        }
    }

public class Main{
    public static void main(String[] args) {
        Student student = new Student();
        student.averageMarks();
        student.displayDisciplines();
}

Исключение в потоке "main" java.lang.NullPointerException в Student.displayDisciplines (Student.java:41) в Main.main (Main.java:5)

это результат.

Ответы [ 2 ]

2 голосов
/ 02 апреля 2019

просто отредактируйте свою строку дисциплины, она создаст новый массив строк, который не назначает поле дисциплины класса, и вы печатаете поле дисциплины класса, поэтому эта проблема наступает.

, так что измените

 String diciplines[] = {"Supplementary class", "Consultation", "Extra homework"};

до

 this.diciplines= new String[]{"Supplementary class", "Consultation", "Extra homework"}; 

он будет запущен.

System.out.println ("Имя студента:" + this.students [i] + "/ Mark:" +this.marks [i]);

this.student недействителен на этой позиции, которую вы должны указать студентом для использования.

0 голосов
/ 02 апреля 2019

Не понятно, что это за ученики. Нет такого частного участника.

System.out.println("Student name: " + this.students[i] 
  + " / Dicipline: " + this.diciplines[i]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...