Re: [問題] 建構子的引數可以是物件嗎?

看板java作者 (淺水中)時間17年前 (2006/12/29 17:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/7 (看更多)
※ 引述《tzuyy (..)》之銘言: : ※ 引述《paoching (遍地寒霜醉紅塵)》之銘言: : : 有可能是你z宣告的scope錯了.... : : 妳試試看在Student x = new Student(z);上一行宣告一下z : : 最好還是有code才好幫妳看.... : 小弟在上一行先宣告Department z = new Department();就可以編譯了。 : 謝謝各位大大的幫忙。但是我小弟又延生出另一個新的問題, : 如果x和z物件互相參考的話怎麼辦?orz.... : 在MainClass.java這樣寫: : public class MainClass { : public static void main(String[] args) { : Department z = new Department(x); : Student x = new Student(z); : } : } : 在Student.java這樣寫: : public class Student { : private Department major; : public Student(Department m){ : this.setDepartment(m); : } : public Department getDepartment(){ : return major; : } : public void setDepartment(Department m){ : major = m; : } : } : 在Department.java這樣寫: : public class Department { : private Student studentname; : public Department(Student s){ : this.setDepartment(s); : } : public Student getDepartment(){ : return studentname; : } : public void setDepartment(Student s){ : studentname = s; : } : } : 小弟想到的方法是這樣子的, : 在Student類別先增一個建構子, : public Student(){}; : 然後在MainClass類別先宣告一個x物件,使z可以順利建立, : 然後再讓x的major屬性參考到z物件。 : public class Student { : private Department major; : public Student(){}; : public Student(Department m){ : this.setDepartment(m); : } : public Department getDepartment(){ : return major; : } : public void setDepartment(Department m){ : major = m; : } : } : public class MainClass { : public static void main(String[] args) { : Student x = new Student(); : Department z = new Department(x); : x.setDepartment(z); : } : } : 想請問各位大大有其它的方法嗎?謝謝。 互相要使用對方的Reference我不建議這樣丟 丟到後來會不知道那個引數是從那丟來的 我建議採用Mediator Design Pattern來做 http://www.patterndepot.com/put/8/Behavioral.html -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.67.210.38
文章代碼(AID): #15bDjZry (java)
討論串 (同標題文章)
文章代碼(AID): #15bDjZry (java)