Java 打印对象数组时遇到问题
我试图编写一个应用程序,接收用户指定的数字,然后让许多对象(我称它们为学生)为它们分配一个随机名称和数字,然后对它们的数字进行排序。我已经计算出了排序,但是在打印阵列时遇到了问题。我的代码如下。我得到的输出是“newobject”,即我输入的次数,后面是我每次toString调用的“0:null”。任何帮助都将不胜感激。多谢各位Java 打印对象数组时遇到问题,java,arrays,object,printing,Java,Arrays,Object,Printing,我试图编写一个应用程序,接收用户指定的数字,然后让许多对象(我称它们为学生)为它们分配一个随机名称和数字,然后对它们的数字进行排序。我已经计算出了排序,但是在打印阵列时遇到了问题。我的代码如下。我得到的输出是“newobject”,即我输入的次数,后面是我每次toString调用的“0:null”。任何帮助都将不胜感激。多谢各位 import java.util.Random; import java.util.Scanner; public class application { publ
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;
}
}
import java.util.Random;
导入java.util.Scanner;
公共类应用程序{
公共静态void main(字符串[]args){
int studentSerialNumber;
字符串studentName;
System.out.println(“输入要排序的学生人数:”;
扫描仪=新的扫描仪(System.in);
int numOfStudents=scanner.nextInt();
学生[]anArrayToSort=新学生[numOfStudents];
for(int i=0;i0){
char c=(char)(r.nextInt(26)+'a');
studentName=studentName+c;
我--;
}
返回学生姓名;
}
}
公立班学生{
int studentSerialNumber;
字符串studentName;
学生(int studentSerialNumber,String studentName){
studentSerialNumber=studentSerialNumber;
studentName=studentName;
System.out.println(“新对象”);
}
公共字符串toString(){
返回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
实例字段。您是如何从静态上下文中实例化Student的<代码>anArrayToSort[i]=新学生(studentSerialNumber,studentName)代码>谢谢Xeon!成功了。我知道我错过了一些简单的事情。我想投你一票,但我没有足够的声誉。案件结案!再次感谢。在过去,命名惯例(如匈牙利符号)会阻止这种情况。现在我应该把它捡起来。