两个对象如何相互引用 我有两个对象A1和A2,须在A1中使用A2,且须在A2中使用A1:class A1 {A2 b; public A1(A2 a) {b=a;} ... }但是如何在A2中使用A1?class A2 {A1 b;... void setA1(A1 a) {b=a;}... }这样可以在A1中调用 b.setA1(this);是不是只能这样?如何修改能使结构好一点? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 现在我只能这样编(代码如下),请flyforlove和insiku指教!谢谢!class A1 {A2 b; public A1(A2 a) {a.setA1(this); b=a;} ... }class A2 {A1 b;... void setA1(A1 a) {b=a;}... } 这样写问题能解决问题,但是实例化的顺序就固定了,就是必须先实例化A2,再实例化A1,如果两各个类是平等的,那么最好实现也是平等的,class A1{ private A2 a2; public A1(){ } public setA2(A2 a2){ this.a2 = a2; }}class A2{ private A1 a1; public A2(){ } public setA1(A1 a1){ this.a1 = a1; }}这样,先实例化哪个都无所谓A1 a1 = new A1();A2 a2 = new A2();a1.setA2(a2);a2.setA1(a1); 楼上的还有问题,这样set的时候需要设置2次可以把以上2步一次完成class A1{ A2 a2; void connect(A2 a2) { this.a2=a2; a2.a1=this; }}class A2{ A1 a1; void connect(A1 a1) { this.a1=a1; a1.a2=this; }}//测试代码A1 a1=new A1();A2 a2=new A2();a1.connect(a2);//a2.connect(a1); 本来按楼主的意思,A中有B,B中有A,天生的双胞胎,难道还要硬拆开不成? 感谢flyforlove和redduke1202参与讨论!偶是业余水平的程序员,所以总觉得自己编的不够专业。感觉flyforlove和redduke1202是专业水平的吧,看了两位回复,偶觉得胜读十年书!其实A1和A2并不是平等的,A1和A2不是双胞胎,A1相当于一个用户列表,A2相当于小组管理器(每个小组由若干用户组成),如果合并,好像代码太长太复杂。 求助!java io问题啊!!! 现在的硬盘好假。 关于容器、hashmap的一个问题 高分请教! 麻烦提供一些j2se开发案例下载的网站 求输入只允许汉字的正则表达式? 打包问题?含包名不能运行。 求教:为什么不能将窗口关闭? 如何将数据库中的数据(有结构层次)用jtree显示出来 菜鸟问题 关于JDK java 应用程序在Solaris下发布 编写JAVA程序实现从命令行获得字符串倒置后打印
class A1
{A2 b;
public A1(A2 a) {a.setA1(this); b=a;}
...
}class A2
{A1 b;
...
void setA1(A1 a) {b=a;}
...
}
private A2 a2;
public A1(){
}
public setA2(A2 a2){
this.a2 = a2;
}
}class A2{
private A1 a1;
public A2(){
}
public setA1(A1 a1){
this.a1 = a1;
}
}
这样,先实例化哪个都无所谓
A1 a1 = new A1();
A2 a2 = new A2();
a1.setA2(a2);
a2.setA1(a1);
可以把以上2步一次完成
class A1
{
A2 a2;
void connect(A2 a2)
{
this.a2=a2;
a2.a1=this;
}
}
class A2
{
A1 a1;
void connect(A1 a1)
{
this.a1=a1;
a1.a2=this;
}
}//测试代码
A1 a1=new A1();
A2 a2=new A2();
a1.connect(a2);
//a2.connect(a1);
感觉flyforlove和redduke1202是专业水平的吧,看了两位回复,偶觉得胜读十年书!其实A1和A2并不是平等的,A1和A2不是双胞胎,A1相当于一个用户列表,A2相当于小组管理器(每个小组由若干用户组成),如果合并,好像代码太长太复杂。