java的类定义的方法中对自身的实例化为什么不会引起无限递归?解决方法
java的类定义的方法中对自身的实例化为什么不会引起无限递归?比如:Java codeclass Test{public void fun()
java的类定义的方法中对自身的实例化为什么不会引起无限递归?
比如:
Java codeclass Test{ public void fun() { Test s=new Test();//这句为什么不会引起无限递归? System.out.println("test!"); }}
就是创建一个Test对象时,会创建fun()然后再创建Test对象……无限循环下去,如果方法是static比较容易理解,因为static方法是类创建类时创建,所以创建对象时不会引起递归,但非static方法为什么也不会引起递归?
[解决办法]执行fun才会创建。。。创建完又不会立马又执行fun 你要手动执行fun
[解决办法]类中有方法,你创建了就会自动调用那个方法么,那不乱套了。我们去调用方法时才会执行方法的,只是初始化时确定类有这个方法,不会去执行的
[解决办法]那句不是只会分配空间,做些初始化,然后new会返回一个地址给t而已吗?为什么会无限递归?
[解决办法]Java codeclass Test{ public Test() { Test t = new Test(); System.out.println(t); }}//试一下这个;