Java 方法在输入字符串后输出 null
Java method outputs null after input String
美好的一天。这是一道作业题。我需要使用课程名称使用构造函数创建课程对象。可以使用 addStudent (String student) 方法添加学生,使用 getStudents() 方法 return 该课程的所有学生。
我的测试程序要求我显示该课程的学生人数和学生姓名,如下所示:
编程II课程学生人数:6
- 茜蒂阿米娜穆罕默德
- 哈林再纳阿比丁
- 杰森·林
- ...
- ...
数据库系统课程的学生人数:15
- 法蒂玛艾哈迈德
- 吴莎拉
...
但是,当我 运行 我的测试程序时,名称输出为空,我不明白为什么。
下面是我的代码:
public class Course {
private String name;
private int numberOfStudents;
private String[] students = new String [100];
public Course() {
}
public Course(String name) {
this.name = name;
}
public void addStudent(String student) {
students [numberOfStudents] = student;
}
public String[] getStudents() {
return students;
}
public int getNumberOfStudents() {
return numberOfStudents;
}
public void setNumberOfStudents(int NumberOfStudents) {
this.numberOfStudents = NumberOfStudents;
}
public String getName() {
return name;
}
}
public class TestCourse {
public static void main(String[] args) {
Course course1 = new Course("Programming II");
course1.setNumberOfStudents(6);
System.out.println("Number of students in Programming II Course: " +course1.getNumberOfStudents());
String[] students = course1.getStudents();
course1.addStudent("Siti Aminah Muhammad");
course1.addStudent("Halim Zainal Abidin");
course1.addStudent("Jason Lim");
for (int i= 1; i<course1.getNumberOfStudents(); i++)
System.out.println( +i+ "." +students[i]);
Course course2 = new Course("Database Systems");
course2.addStudent("Fatimah Ahmad");
course2.addStudent("Sarah Goh");
course2.setNumberOfStudents(15);
System.out.println("Number of students in Database Systems Course:" +course2.getNumberOfStudents());
for (int i= 1; i<course2.getNumberOfStudents(); i++)
System.out.println( +i+ "." +students[i]);
}
}
This is the output that I have.
在您的方法 addStudent() 中,您将学生添加到 [numberOfStudents] 的数组中。这样做,您的学生都被放置在阵列中的相同位置(第一个测试 6 个,第二个测试 15 个)。这就是为什么你有一个学生的唯一地方是 6。如果你想让他们在 1、2、3 等,你需要在每次添加一个时设置你的新 numberOfStudent 以确保你的下一个学生会在最后一个。
如果你不想每次都这样做,你可以简单地添加this.numberOfStudent++;在你的 addStudent 方法中。
美好的一天。这是一道作业题。我需要使用课程名称使用构造函数创建课程对象。可以使用 addStudent (String student) 方法添加学生,使用 getStudents() 方法 return 该课程的所有学生。 我的测试程序要求我显示该课程的学生人数和学生姓名,如下所示: 编程II课程学生人数:6
- 茜蒂阿米娜穆罕默德
- 哈林再纳阿比丁
- 杰森·林
- ...
- ... 数据库系统课程的学生人数:15
- 法蒂玛艾哈迈德
- 吴莎拉 ...
但是,当我 运行 我的测试程序时,名称输出为空,我不明白为什么。 下面是我的代码:
public class Course {
private String name;
private int numberOfStudents;
private String[] students = new String [100];
public Course() {
}
public Course(String name) {
this.name = name;
}
public void addStudent(String student) {
students [numberOfStudents] = student;
}
public String[] getStudents() {
return students;
}
public int getNumberOfStudents() {
return numberOfStudents;
}
public void setNumberOfStudents(int NumberOfStudents) {
this.numberOfStudents = NumberOfStudents;
}
public String getName() {
return name;
}
}
public class TestCourse {
public static void main(String[] args) {
Course course1 = new Course("Programming II");
course1.setNumberOfStudents(6);
System.out.println("Number of students in Programming II Course: " +course1.getNumberOfStudents());
String[] students = course1.getStudents();
course1.addStudent("Siti Aminah Muhammad");
course1.addStudent("Halim Zainal Abidin");
course1.addStudent("Jason Lim");
for (int i= 1; i<course1.getNumberOfStudents(); i++)
System.out.println( +i+ "." +students[i]);
Course course2 = new Course("Database Systems");
course2.addStudent("Fatimah Ahmad");
course2.addStudent("Sarah Goh");
course2.setNumberOfStudents(15);
System.out.println("Number of students in Database Systems Course:" +course2.getNumberOfStudents());
for (int i= 1; i<course2.getNumberOfStudents(); i++)
System.out.println( +i+ "." +students[i]);
}
}
This is the output that I have.
在您的方法 addStudent() 中,您将学生添加到 [numberOfStudents] 的数组中。这样做,您的学生都被放置在阵列中的相同位置(第一个测试 6 个,第二个测试 15 个)。这就是为什么你有一个学生的唯一地方是 6。如果你想让他们在 1、2、3 等,你需要在每次添加一个时设置你的新 numberOfStudent 以确保你的下一个学生会在最后一个。
如果你不想每次都这样做,你可以简单地添加this.numberOfStudent++;在你的 addStudent 方法中。