当参数之一为 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 问题
您有几个选择:
您可以创建第二个不带房间号的构造函数:
public ITECCourse(String courseName, int courseCode, int courseMaxStudents)
您可以将 room 从和 int 更改为 Integer。这将允许空值。
无论哪种方式,您都希望添加一个方法 setRoomNumber() 以允许用户稍后提供该值。
这与 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 问题
您有几个选择:
您可以创建第二个不带房间号的构造函数:
public ITECCourse(String courseName, int courseCode, int courseMaxStudents)
您可以将 room 从和 int 更改为 Integer。这将允许空值。
无论哪种方式,您都希望添加一个方法 setRoomNumber() 以允许用户稍后提供该值。