本身写的有问题啊a,b是BOY类的对象嘛?如果是的话那么
class boy {
                boy ()
                {
                  public boy a = new boy()  
                  public boy b = new boy()  
                }
            }
是想表达这个意思?
如果是这个意思。。那应该是个循环
不过看你好象不是这个意思吧~不明白~~

解决方案 »

  1.   

    这是说在Boy类中有a,b两个成员指向另外的Boy对象。
      

  2.   

    首先你给的这个例子有问题,a、b变量没有类型,应该是这样吧:
        class boy {
            public boy (){}
            public boy a = new boy();
            public boy b = new boy();
        }调用方法如下:
        boy myBoy = new boy();
    根据我的测试,确实有问题。程序在实例化myBoy时,首先执行了
            public boy a = new boy();
            public boy b = new boy();
    语句。结果是无限循环执行下去。
    不知楼主是在Thinking in Java什么地方看到这个例子的。
    实际上我在Thinking in Java中看到的例子应该类似如下这样:
        class boy {
            public boy (){}
            public void foo(){
                boy a = new boy();
                boy b = new boy();
            }
        }
    其实这样调用是可以的:
        class boy {
            public static Boy a = new Boy();
            public boy (){}
        }
    这样构造函数boy()将被执行两次。不过不知道这么写有什么用:)
      

  3.   

    如果是上上面说的,那就没什么问题了,Think in java 里只是用来对对象举例子的