申明一个类如下:public class Abc{
    public Abc a;
    public int i;
}请问各位以上这个申明在java中是合法的,但这样不会产生无穷递归吗???假如我声明一个Abc类的对象abc,那么不就可以进行如下操作了??!!
abc.a.a.a.a.a.a.a.a.a.a ... a.a.i=1;
这摆明是个无穷递归嘛???!!!原各位朋友给解答一下

解决方案 »

  1.   

    public Abc a;
    这一句只是申明一个引用,并没有真正创建Abc的对象,所以不会有错
    如果你写成public Abc a = new Abc();那样会肯定有错误的了,因为他会不段地去创建Abc的对象,最后会有一个Stack逸出的异常抛出
      

  2.   

    都讲完了
    public Abc a只是声明一个Abc的类型的引用,不指向任何对象,所以不会出现无穷递归,就好比手拉手排队一样,你现在是一个人,你的手就好比a,可以去拉别的人,也可以不拉任何人