一旦我在先前的声明中输入我的数据到数组i然后尝试获取此数据并打印,但我得到一个随机的数据输出,您可以在附加图像中看到。
我的代码如下:
private void listStudent()
{
{
System.out.printf("%s %-7s %14s %10s","ID","First Name","Last Name","Age\n");
for (int i= 0; i<count; ++i)
{
System.out.println(arr[i]);
}
System.out.println();
Scanner scanner = new Scanner(System.in);
scanner.nextLine();
public class Student {
private String fname;
private final String lname;
double age;
private final String id;
int count;
这是我在student.java文件中的代码
Student(String id, String fname, String lname, double age, int count)
{
this.id = id;
this.fname = fname;
this.lname = lname;
this.age = age;
this.count = count;
}
答案 0 :(得分:1)
我相信您要问的问题与以下输出有关: 学生@ 55f96302。 这是因为行
System.out.println(arr[i]);
据我所知,您正在尝试打印Student对象信息,但Java不能以这种方式工作 - 如果您只打印一个数组项(这是一个对象),它将打印出 Classname @hash < /强>
为了打印真实的学生数据,您的Student课程还应该包含值的getter。所以学生班看起来像:
public class Student {
private String id;
private String fname;
private String lname;
private double age;
private int count;
Student(String id, String fname, String lname, double age, int count) {
this.id = id;
this.fname = fname;
this.lname = lname;
this.age = age;
this.count = count;
}
public String getId() {
return id;
}
public String getFname() {
return fname;
}
public String getLname() {
return lname;
}
public double getAge() {
return age;
}
public int getCount() {
return count;
}
}
然后在'for'循环中,您需要执行以下操作:
for (int i= 0; i<count; ++i)
{
System.out.println(arr[i].getId() + arr[i].getFname() + arr[i].getLname());
}
等等。