java - 在“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
解决方案
请尝试下面给定的代码。
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]);
}
}
}
推荐阅读
- javascript - 如何为 Mapbox 上的每个坐标设置动画标记?
- vb.net - 我计算收据的 Visual Basic 程序(使用子例程和验证函数)不工作
- javascript - 在运行时在 Gatsby 中重新运行查询
- x86-16 - 段和偏移使用
- flutter - D/FlutterActivityAndFragmentDelegate(29168):没有提供首选的 FlutterEngine。为这个 FlutterFragment.Flutter 创建一个新的 FlutterEngine:
- asp.net-mvc - MVC does not render view if querystring is used
- sql-server - 来自 Microsoft SQL Server 的整理格式不佳的数据
- node.js - SequelizeDatabaseError:关系notice_opened_tbl的权限被拒绝
- python - 数组中的 lambda 找不到变量值
- python - 将 numpy 数组中的特定值转换为 NAN