我需要能够打印出数组列表中的学生对象(所有变量)。这可能吗?当我尝试打印时,它会输出类似的内容,例如student。Student@82701e
。我想是十六进制之类的
这是我的代码:
package student;
public class Student {
private String studentName;
private String studentNo;
private String email;
private int year;
public Student() {
this.studentName = null;
this.studentNo = null;
this.email = null;
this.year = -1;
}
public Student(String nName, String nNum, String nEmail, int nYr) {
this.studentName = nName;
this.studentNo = nNum;
this.email = nEmail;
this.year = nYr;
}
public void setStudentName(String newStudentName) {
this.studentName = newStudentName;
}
public void setStudentNo(String newStudentNo) {
this.studentNo = newStudentNo;
}
public void setEmail(String newEmail) {
this.email = newEmail;
}
public void setYear(int newYear) {
this.year = newYear;
}
public String getStudentName() {
return studentName;
}
public String getStudentNo() {
return studentNo;
}
public String getEmail() {
return email;
}
public int getYear() {
return year;
}
}
package student;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class studentTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
List<Student> Students = new ArrayList();
Student student1 = new Student();
student1.setStudentName("Bob Marley");
student1.setStudentNo("N0002");
student1.setEmail("student2@student.com");
student1.setYear(2);
Students.add(student1);
Student student2 = new Student();
student2.setStudentName("Bill Harvey");
student2.setStudentNo("N0003");
student2.setEmail("student3@student.com");
student2.setYear(2);
Students.add(student2);
Student student3 = new Student();
student3.setStudentName("John Beans");
student3.setStudentNo("N0004");
student3.setEmail("student4@student.com");
student3.setYear(2);
Students.add(student3);
System.out.println("Add new students: ");
System.out.println("Enter number of students to add: ");
int countStudents = input.nextInt();
for (int i = 0; i < countStudents; i++) {
Student newStudents = new Student();
System.out.println("Enter details for student: " + (i + 1));
System.out.println("Enter name: ");
newStudents.setStudentName(input.next());
System.out.println("Enter Number: ");
newStudents.setStudentNo(input.next());System.out.println("Search by student number: ");
System.out.println("Enter email: ");
newStudents.setEmail(input.next());
System.out.println("Enter year: ");
newStudents.setYear(input.nextInt());
Students.add(newStudents);
}
}
}
您必须在学生
类中定义公共字符串toString()
方法。例如:
public String toString() {
return "Student: " + studentName + ", " + studentNo;
}
无论何时打印类的任何实例,都会调用对象
类的默认
toString
实现,它返回您得到的表示形式。它包含两部分:-Type
和Hashcode
所以,在学生中。Student@82701e作为输出得到的-
类型
,并且82701e
是HashCode
因此,您需要重写Student
类中的toString
方法,以获得所需的字符串表示形式
:-
@Override
public String toString() {
return "Student No: " + this.getStudentNo() +
", Student Name: " + this.getStudentName();
}
因此,当您从您的main
类中打印您的ArrayList
时,它将为每个实例调用toString
方法,您将重写
而不是Object
类中的方法:-
List<Student> students = new ArrayList();
// You can directly print your ArrayList
System.out.println(students);
// Or, iterate through it to print each instance
for(Student student: students) {
System.out.println(student); // Will invoke overrided `toString()` method
}
在上述两种情况下,将调用学生
类中覆盖的toString
方法,并打印每个实例的适当表示。
重写Student
类中的toString()
方法,如下所示:
@Override
public String toString() {
return ("StudentName:"+this.getStudentName()+
" Student No: "+ this.getStudentNo() +
" Email: "+ this.getEmail() +
" Year : " + this.getYear());
}
问题内容: 我需要能够在数组列表中打印出Student对象(所有变量)。这可能吗?当我尝试打印时,它会输出此类内容。我认为是这样 这是我的代码: 问题答案: 类中的重写方法如下:
我无法打印我的数组列表对象。 下面是我的第一个返回arraylist对象的类: } 物品是:约翰 物品是:乔 但当我检索到另一个类时,它不起作用。 下面是我的第二个类来检索数组列表对象并显示它: 运行这个之后,它会打印出来:什么都没有 如果我像这样打印 System.out.println("NAME"arr.toString()); 它给了我名字:[]; 有人能解释为什么它不起作用吗(在第二节课
我有一个简短的问题 我有飞行、水上课程和动物课程 如果我只想打印出动物对象数组中的飞行物体 做这样的事安全吗 或 执行此操作并重写toString方法 我是java新手,所以我甚至不确定这两个是否正确。所以欢迎任何帮助 谢谢你的帮助 编辑- 对不起,模棱两可的问题这是我问题的一个例子 我可以做输出 = A.toString() 来获取对象字符串还是我必须做 并重写toString方法以打印出类和示
问题内容: 我正在尝试打印a的所有元素,但是它打印的是指针而不是值。 这是我的打印代码… 任何人都可以帮助我,为什么它没有体现出要素的价值。 问题答案: 这是有关打印出列表组件的一些示例: public class ListExample { } class Model { }
我已经创建了几个对象,我想在ArrayList中只打印对象的一个参数: 我要打印:
我是Java和Stack Overflow的新手,我有一个关于排列的问题。 方法:我使用中的对象生成。每个的大小从(可能最小为1)到,并包含具有唯一名称属性的自定义生成对象。 问题:现在我的问题是如何在我的外部(y轴)中获得从第一个到最后一个的所有可能对象组合的排列(我想我们可以说这是x轴)? 我试着举一个简单的例子: : 1.1|1.2|1.3 : 2.1 : 3.1|3.2 这里,这些位于外部