gpt4 book ai didi

Java - 修改类以计算创建的对象总数

转载 作者:行者123 更新时间:2023-11-30 04:14:55 26 4
gpt4 key购买 nike

目前,我正在开发一个包含 3 个类(class)的小型练习初学者程序,我正在尝试对其进行修改。我想修改 Student 类,以便它计算创建的对象总数,并且我想修改 Course 类,以便它包含 Student 类的数组。这是我到目前为止所拥有的;任何援助将不胜感激。我确信这是显而易见的,我只是太笨了:

类(class):

public class Course {
private String courseName;
private Student[]
students = new Student[100];
private int numberOfStudents;

public Course(String courseName) {
this.courseName = courseName;
}

public void addStudent(String[] Student) {
Student[numberOfStudents] = students[];
numberOfStudents++;
}

public Student[] getStudents() {
return students;
}

public int getNumberOfStudents() {
return numberOfStudents;
}

public String getCourseName() {
return courseName;
}

public void dropStudent(String student) {

}
}

类(class)学生:

public class Student {
private int id;
private String name;
private java.util.Date dateCreated;

public Student(int ssn, String newName) {
id = ssn;
name = newName;
dateCreated = new java.util.Date();
}

public int getID() {
return id;
}

public String getName() {
return name;
}

public java.util.Date getDateCreated() {
return dateCreated;
}
}

以及驱动程序类,TestCourse 类:

public class TestCourse {
public static void main(String[] args) {
Course course1 = new Course("Data Structures");
Course course2 = new Course("Database Systems");

course1.addStudent("Peter Jones",);
course1.addStudent("Brian Smith");
course1.addStudent("Anne Kennedy");

course2.addStudent("Peter Jones");
course2.addStudent("Steve Smith");

System.out.println("Number of students in " +course1.getCourseName() + ": "
+ course1.getNumberOfStudents());
String[] students = course1.getStudents();
for (int i = 0; i < course1.getNumberOfStudents(); i++)
System.out.print(students[i] + ", ");

System.out.println();

System.out.print("Number of students in " +course2.getCourseName() +": "
+ course2.getNumberOfStudents());

System.out.println();

String[] students1 = course2.getStudents();
for (int i = 0; i < course2.getNumberOfStudents(); i++)
System.out.print(students1[i] + ", ");
}
}

最佳答案

因为这是一项家庭作业,并且目的是让您学习,所以这里有一些提示

仔细看看这段代码:

  private Student[]
students = new Student[100];

public void addStudent(String[] Student) {
Student[numberOfStudents] = students[];
numberOfStudents++;
}

提示:

  1. 你需要更加注重风格。

    • students的声明看起来一个名为Student的变量的声明......因为你在一个奇怪的地方将它分成两行。

    • addStudent 的参数声明是错的。变量名不应以大写字母开头。永远不会。在本例中,这是双重错误,因为您还有一个名为 Student 的类。 !

      现在,Java 编译器可以处理具有相同名称的类和变量的代码。 (JLS 有解决困惑的规则。)问题是你的代码可能并不像你想象的那样......这是一件坏事!!

  2. 此语句无效:Student[numberOfStudents] = students[]; 。问题是 RHS 必须是一个表达式,并且 students[]不是表达式。

  3. 但是 addStudent 的根本问题方法就是没有意义。您实际上在这里想做什么?添加Studentstudents大批?如果是这样,为什么要向它传递一个字符串数组?为什么你要尝试给该字符串数组分配一些东西?

    我认为您需要更改 addStudent 的签名至addStudent(Student) 。然后更改依赖于该方法签名的各种其他内容...包括调用该方法的位置。

  4. 最后,声明 students 是一个坏主意。作为 Student 的数组。问题是数组有固定的上限。如果超出该限制,则会出现运行时异常。在这种情况下,如果 Students 超过 100 个,您的代码将会崩溃。在 Course .

    有多种方法可以解决这个问题,但最简单的是使用 List<Student>而不是Student[] 。当您实现 dropStudent 时,这也会有所帮助。方法。

关于Java - 修改类以计算创建的对象总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18648986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com