至於有人建議,你應該使用構造函數重載。
Java知道使用哪個構造函數,因爲它們的參數不同。因此,您可以製作兩種不同的構造函數,只要參數的類型或數量不同,就可以。
在你的情況下,參數的數量是相同的,但最後一個參數的類型是不同的。對於一個構造函數,類型爲Teacher
,另一個爲Set<Teacher>
。所以用Java寫這個是合法的。
因此,舉例來說:
private Set<Teacher> teacher;
// Constructor with only one teacher.
public DespachoImpl(String nombre, Integer planta, Integer aforo, Teacher teacher) {
super(TipoLugar.OTRO, nombre, planta, aforo);
this.teacher = new HashSet<Teacher>();
this.teacher.add(teacher);
}
// Constructor with a set of teachers.
public DespachoImpl(String nombre, Integer planta, Integer aforo, Set<Teacher> teachers) {
super(TipoLugar.OTRO, nombre, planta, aforo);
this.teacher = new HashSet<Teacher>(teachers);
}
其實你可以直接給teachers
到this.teacher
,但我選擇以顯示覆制,那你可能需要使用你的東西參數傳遞設定的假設下否則你不希望私人設置受到它的影響。
所以,現在,如果你撥打:
new DespachoImpl("XXXX", 5, 8, new Teacher(....));
它將調用第一個構造函數。但如果你打電話:
Set<Teacher> teachers = new HashSet<>();
teachers.add(new Teacher(...));
teachers.add(new Teacher(...));
new DespachoImpl("XXXX", 5, 8, teachers);
它會調用第二個構造函數。
只寫第二個。 – Maroun 2014-12-02 09:47:37
使用構造函數重載創建兩個構造函數 – 2014-12-02 09:48:32
'列出教師'添加多個教師。 –
2014-12-02 09:50:03