我开始学习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);
}

最佳答案

简单:您声明了对象类型的数组。

对象没有名称,只有People实例具有名称!

换句话说:您要声明一个People数组,而不是Object数组。

您会看到,编译器仅“记住”该变量声明左侧使用的类型。它不知道您实际上创建了一个Object数组,并且仅将People实例放置在该数组中。

和无关:人意味着复数。您应该将该类称为Person或PersonInfo。

07-24 09:43
查看更多