假如说有两个类 :类A 和 类B,类A中有个类B的对象,类B中有一个类A的对象。这样在创建类A时,在类A中创建了一个类B的对象,同时由于创建了类B的对象,其又会创建类A的对象,这样是不是会循环啊?
不过我试试,好像是不会的,不知道为什么,谁能解释一下呗!

解决方案 »

  1.   

    答:这个想法很早就是一个题目了。可能循环,可能不循环,要看你是如何设计构造器的
    示例代码一[不会循环]public class A {
      B b;
      public A()
      {
      b=new B(this);
      }
      public static void main(String[] args) {
    A a=new A();

    }
    }
    public class B {
      A a;
      public B(A a)
      {
      this.a=a;
      }
    }示例代码二:会循环。会导致:java.lang.StackOverflowErrorpublic class A {
     B b;
     public A()
     {
     b=new B();
     }
     public static void main(String[] args) {
    A a=new A();
    }
    }public class B {  A a;
     public B()
     {
     a=new A();
     }
    }
      

  2.   

    如楼主1的代码所示:这是一个不用质疑的问题!从Java的引用类型就可以得知了。好好琢磨吧!
      

  3.   

    一楼中 不循环的时候是 B类 是把a 当作赋值进去.  而循环的时候是对A进行新建的 不知道可不可以这样理解?