java - 打印对象数组时遇到问题

标签 java arrays object printing

我正在尝试编写一个应用程序,该应用程序接受用户指定的数字,然后使许多对象(我称它们为学生)为它们分配随机名称和数字,然后对它们的数字进行排序。我已经解决了问题,但在打印数组时遇到问题。我的代码如下。我得到的输出是我输入的次数“New Object”,后面是每次 toString 调用的“0: null”。任何帮助将不胜感激。谢谢。

import java.util.Random;
import java.util.Scanner;

public class application {

public static void main(String[] args) {

    int studentSerialNumber;
    String studentName;

    System.out.println("Enter the number of students you would like to sort: ");
    Scanner scanner = new Scanner(System.in);
    int numOfStudents = scanner.nextInt();

    Student[] anArrayToSort = new Student[numOfStudents];

    for (int i = 0; i < anArrayToSort.length; i++) {

        studentSerialNumber = ((int)(Math.random() * 8888)) + 1000;
        studentName = getStudentName();

        anArrayToSort[i] = new Student(studentSerialNumber, studentName);

    }

    for (int i = 0; i < anArrayToSort.length; i++) {
        System.out.println(anArrayToSort[i].toString());

    }
}

private static String getStudentName() {

    String studentName = "";
    int i = 7;
    Random r = new Random();

    while (i > 0) {
        char c = (char) (r.nextInt(26) + 'a');
        studentName = studentName + c;
        i--;
    }

    return studentName;
}
}


public class Student {

int studentSerialNumber;
String studentName;

Student(int studentSerialNumber, String studentName) {

    studentSerialNumber = studentSerialNumber;
    studentName = studentName;
    System.out.println("New Object");

}

public String toString() {
      return studentSerialNumber + ": " + studentName;
   }
}

最佳答案

构造函数中的赋值是错误的:

Student(int studentSerialNumber, String studentName) {
    studentSerialNumber = studentSerialNumber;
    studentName = studentName;
    System.out.println("New Object");
}

这应该是:

Student(int studentSerialNumber, String studentName) {
    this.studentSerialNumber = studentSerialNumber;
    this.studentName = studentName;
    System.out.println("New Object");
}
<小时/>

目前,您正在为其自身赋值,而不是为 Student 实例字段赋值。

关于java - 打印对象数组时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15864271/

相关文章:

javascript - 限制 map 后结果

javascript - 创建新对象并使用 fs.writeFile() 写入文件

javascript - 新对象或新对象()

java - 每个 Java Future 在其生命周期中控制一个核心

java - 什么时候初始化成员?

javascript - JSON/Javascript : return which array object contains a certain property

数组中的 Javascript 对象引用

java - 如何分割Java字符串但保留其部分内容?

java - 如何在Jtable中随机播放

c++ - 为 vector<vector<>> 分配内存的捷径