Я хочу напечатать метод в объекте на объекте массива, но не могу. Почему? - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь понять, почему я не могу напечатать этот метод. это не показывает мне, что с моим кодом есть какие-либо проблемы, поэтому я не могу понять, чего мне здесь не хватает.

package practice;

class Persons{
    String name;
    int id;

    public void speak(String name,int id) {
        System.out.println("hello i am " + name + " and my id is " + id);
        this.name = name;
        this.id = id;
    }
}

public class demo1 {

    public static void main(String[] args) {

        Persons person[] = new Persons[5];
        person[0].speak("guy", 1);  
    }
}

1 Ответ

0 голосов
/ 30 марта 2020

Вы создаете массив из 5 нулевых элементов. Этот код будет генерировать исключение NullPointerException.

Persons person[] = new Persons[5];
person[0] = new Person();
person[0].speak("guy", 1);  

Вы можете подумать о создании конструктора типа:

public Persons(String name,int id)

Или предоставить публикуемый c набор методов получения и установки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...