public class Smile {
private Smile leftSmile;
private Smile rightSmile;
...
public Smile(...){
...
if(...) return;
leftSmile=new Smile(...);
....
rightSmile=new Smile(...);
....
}
问题:执行过程是怎么样的,具体疑惑是:当第一个递归到达临界条件返回后,执行下一个这个递归,也就是rightSmile的初始化,当这个初始化进行到这句leftSmile=new ..;这句时应该是跳过的吧?当这一次执行完毕后(因为条件限制,它直接return),第二次执行rightSmile=new...时,由于这时它的条件允许它递归,那么是否会调用呢?如果调用了,那么将会再一次对相同条件下,对同一个对象进行初始化...这显然是违反常理的?不知哪位知道实际调用过程?
谢谢——————
private Smile leftSmile;
private Smile rightSmile;
...
public Smile(...){
...
if(...) return;
leftSmile=new Smile(...);
....
rightSmile=new Smile(...);
....
}
问题:执行过程是怎么样的,具体疑惑是:当第一个递归到达临界条件返回后,执行下一个这个递归,也就是rightSmile的初始化,当这个初始化进行到这句leftSmile=new ..;这句时应该是跳过的吧?当这一次执行完毕后(因为条件限制,它直接return),第二次执行rightSmile=new...时,由于这时它的条件允许它递归,那么是否会调用呢?如果调用了,那么将会再一次对相同条件下,对同一个对象进行初始化...这显然是违反常理的?不知哪位知道实际调用过程?
谢谢——————
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货