当前位置: 技术问答>java相关
如何去编译循环定义??
来源: 互联网 发布时间:2015-06-17
本文导语: 如何编译这样的东西? class A { public B b; } class B { public A a; } ?? | 这个阿,没有错误,编译的时候 | first class A { //public B b; } class B { public A a;...
如何编译这样的东西?
class A
{
public B b;
}
class B
{
public A a;
}
??
class A
{
public B b;
}
class B
{
public A a;
}
??
|
这个阿,没有错误,编译的时候
|
first
class A
{
//public B b;
}
class B
{
public A a;
}
second
class A
{
public B b;
}
class B
{
public A a;
}
class A
{
//public B b;
}
class B
{
public A a;
}
second
class A
{
public B b;
}
class B
{
public A a;
}
|
说的有道理,确实是为了方便
可试一下。
public static void main(String[] args){
a mm=new a();
System.out.println(mm.b);
}
结果为null.需要赋值。 试着赋值,然后打印mm.b,或者mm.b.a,或者mm.b.a.b,可看到错误信息和结果。
可试一下。
public static void main(String[] args){
a mm=new a();
System.out.println(mm.b);
}
结果为null.需要赋值。 试着赋值,然后打印mm.b,或者mm.b.a,或者mm.b.a.b,可看到错误信息和结果。
|
对,象这样的循环定义应该如何使用,用在什么地方?
|
比如父窗口和子窗口常常相互调用
在父窗口中保存一个子窗口的对象
子窗口也有父窗口的一个引用
在父窗口中保存一个子窗口的对象
子窗口也有父窗口的一个引用
|
看看。
|
比如JDK中
JTable 中有一个protect类型的JTableHeader
protected JTableHeader tableHeader
The TableHeader working with the table.
而JTableHeader中有:
protected JTable table
The table for which this object is the header; the default is null.
没什么关系。
为了引用起来方便而已
JTable 中有一个protect类型的JTableHeader
protected JTableHeader tableHeader
The TableHeader working with the table.
而JTableHeader中有:
protected JTable table
The table for which this object is the header; the default is null.
没什么关系。
为了引用起来方便而已
|
不会有问题di
|
C++中这样的情况需要前向引用,不过Java中Compiler非常智能,你不用担心了。