首页 > 解决方案 > 在“for 语句”中打印出数组

问题描述

我想在“for 语句”中打印出数组的值,但它打印的是对象地址。

        Person student = new Person();
        Person [] students = new Person[10];
        students[0] = student;
        students[1] = student;
        students[2] = student;

        students[0].studentDetails("Abel Morris Ben", "Java Programming", 99);
        students[1].studentDetails("Jane Doe", "Web Development", 85);
        students[2].studentDetails("John Doe", "Ethical Hacking", 80);


        for( int i=0; i <= 2; i++) {

            System.out.println(students[i]);
        }

它正在打印对象位置:

Person@2a139a55
Person@2a139a55
Person@2a139a55

标签: java

解决方案


请尝试下面给定的代码。

public class Person {

    private String name;
    private String designation;
    private int salary;

    public void studentDetails(String name, String designation, int salary) {
        this.name = name;
        this.designation = designation;
        this.salary = salary;
    }

    public String getName() {
        return name;
    }

    public String getDesignation() {
        return designation;
    }

    public int getSalary() {
        return salary;
    }

    @Override
    public String toString() {
        return "Person [name=" + name + ", designation=" + designation + ", salary=" + salary + "]";
    }

    public static void main(String[] args) {
        Person student = new Person();
        Person[] students = new Person[10];
        students[0] = student;
        students[1] = student;
        students[2] = student;

        students[0].studentDetails("Abel Morris Ben", "Java Programming", 99);
        students[1].studentDetails("Jane Doe", "Web Development", 85);
        students[2].studentDetails("John Doe", "Ethical Hacking", 80);

        for (int i = 0; i <= 2; i++) {
            System.out.println(students[i]);
        }
    }
}

推荐阅读