当参数之一为 TBD 时如何初始化对象

How can I initialize an Object when one of the parameters is TBD

这与 Java 家庭作业有关。

我写了一个 class 用于创建课程对象的实例,每门课程都有课程名称、最大学生人数和房间号等参数。但是,对于某些 classes,房间是未知的。有没有办法初始化一个没有房间号的课程对象?

public class ITECCourse {

private String name;
private int code;
private ArrayList<String> students;
private int maxStudents;
private int room = 0;

。 . .

//Constructor

public ITECCourse(String courseName, int courseCode, int courseMaxStudents, int room) {
    this.name = courseName;
    this.code = courseCode;
    this.students = new ArrayList<String>();
    this.maxStudents = courseMaxStudents;
    this.room = room;

添加第二个不获取(或设置)房间号的构造函数。

是的,您可以重载构造函数。除了上面的构造函数之外,您还可以向 class 添加一个新构造函数,如下所示:

public ITECCourse(String courseName, int courseCode, int courseMaxStudents) {
    this(courseName, courseCode, courseMaxStudents, 0);
}

这将允许您在房间未设置的情况下不将其默认为某个值。

这样做的另一个好处是,通过调用另一个已经存在的构造函数,您不会 运行 陷入到处重复代码(设置所有值)的问题。

有关最佳做法的更多详细信息,请参见this 问题

您有几个选择:

  1. 您可以创建第二个不带房间号的构造函数:

    public ITECCourse(String courseName, int courseCode, int courseMaxStudents)
    
  2. 您可以将 room 从和 int 更改为 Integer。这将允许空值。

无论哪种方式,您都希望添加一个方法 setRoomNumber() 以允许用户稍后提供该值。