作者calais007 (浅水中)
看板java
标题Re: [问题] 建构子的引数可以是物件吗?
时间Fri Dec 29 17:13:42 2006
※ 引述《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