Magnolia_ 2022-04-29 11:45 采纳率: 50%
浏览 38

Java的toString()重写问题

问题遇到的现象和发生背景

今天做练习引用类型数组,发现一个有意思的事儿,我想不明白,前来求解,为什么主函数没调用toString(),输出结果却是toString()形式

问题相关代码,请勿粘贴截图
public class Test {
    public static void main(String[] args) {
        Person[] people = new Person[3];
        String[] names = {"徐凤年", "李淳罡", "王仙芝"};
        int[] ages = {25, 35, 55};
        int[] height = {180, 188, 175};
        for (int i = 0; i < people.length; i++) {
            people[i] = new Person();
            people[i].name = names[i];
            people[i].age = ages[i];
            people[i].height = height[i];
        }

        for (Person p : people) {
            System.out.println(p);
        }
    }
}
class Person {
    public String name;
    public int age;
    public int height;
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", height=" + height +
                '}';
    }

}

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

3条回答 默认 最新

  • Tomshidi 2022-04-29 11:58
    关注

    System.out.println方法传入的如果是非String对象,那么就会自动调用对象的toString方法。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月29日