Почему я не могу добраться до экземпляра объекта в массиве объектов? - PullRequest
0 голосов
/ 09 июня 2018

Я начинаю изучать Java, и столкнулся с этой проблемой, когда я могу достичь имени объекта и lastName, но не могу достичь, если я помещу их в массив объектов.

public class Human {
    String name;
    String lastName;
    String[] people;

    People(String name, String lastName) {
        this.name = name;
        this.lastName = lastName;
    };

    public static People tom = new People("Tom", "Tommy");
    public static People ted = new People("Ted", "Teddy");

    public static Object[] objects = {
            tom,
            ted
    };
    public static void main(String[] args) {
        System.out.println(tom.lastName);
        System.out.println(objects[0]);

и эта нужная мне строка не работает.

        System.out.println(objects[0].lastName); 
}

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Здесь Object[] objects - это массив Object, а класс Object не имеет ничего похожего на lastName.Существует два способа решения проблемы.

  1. Объявите массив как People[] objects или

  2. Присвойте объект таким людям, как ((People)objects[0]).lastName

0 голосов
/ 09 июня 2018

Простой: вы объявили, что массив типа Объект .

У объектов нет имен, только у экземпляра People!

Другими словами: выхочу объявить массив людей, а не объект.

Видите ли, компилятор только «запоминает» тип, который используется в левой части объявления этой переменной.Он не знает, что вы на самом деле создали массив Object и поместили в него только экземпляры People.

И никак не связаны: люди подразумевают множественное число.Вам лучше позвонить в этот класс Person или, возможно, PersonInfo.

...