这与Java作业分配有关。
我写了一个用于创建课程对象实例的课程,每门课程都有参数,如课程名称,最大学生人数和房间号码。然而,对于某些课程,房间不得而知。有没有办法初始化和没有房间号的课程对象?
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;
答案 0 :(得分:2)
您有几个选择:
您可以创建第二个不带房号的构造函数:
public ITECCourse(String courseName, int courseCode, int courseMaxStudents)
您可以将空间和int更改为整数。这将允许空值。
无论哪种方式,您都希望添加方法setRoomNumber()以允许用户稍后提供该值。
答案 1 :(得分:0)
添加第二个不接受(或设置)房间号的构造函数。
答案 2 :(得分:0)
是的,您可以重载构造函数。除了上面的构造函数,您可以在类中添加一个新的构造函数:
public ITECCourse(String courseName, int courseCode, int courseMaxStudents) {
this(courseName, courseCode, courseMaxStudents, 0);
}
这将允许您在尚未设置的情况下不将房间默认设置为某个值。
这样做的另一个好处是,通过调用另一个已经存在的构造函数,你不会遇到在任何地方重复代码的问题(设置所有值)。
有关最佳做法的详细信息,请参阅this问题