JAVA中的this问题

来源:百度知道 编辑:UC知道 时间:2024/05/06 18:14:38
public class sky{
int petalCount=0;
String s=new String("null");
sky(int petals){
petalCount=petals;
System.out.println("Constructor w/ int arg only, petalCount="+petalCount);
}
sky(String ss){
System.out.println(
"Constructor w/ int arg only, s="+ss);
s=ss;
}
sky(String s , int petals){
this(petals);
this.s=s;
System.out.println("String & int args");
}
sky(){
this("hi",47);
System.out.println("defult constructor (no args)");
}
void print(){
System.out.println("petalCount="+petalCount+" s="+s);
}
public static void main(String[] args){
sky x=new sky();
x.print();
}
}

程序编译通过了,但就不知道,执行的过程(我的意思是,这个程序执行的顺序是什么)
望高人指点一下;

1、先执行入口程序main,在main中用默认构造实例sky
2、在默认构造函数中调用了sky(String s , int petals){ }这个双参构造sky("hi",47)
3、在双参构造中又调用了sky(int petals){ }这个单参构造sky(47)
4、将参数值赋给全局变量petalCount
5、打印"Constructor w/ int arg only, petalCount=47"
6、返回双参构造,给全局变量s赋值,并打印"String & int args"
7、返回默认构造,并打印"defult constructor (no args)"
8、继续执行main,调用x.print(),并打印"petalCount=47 s=hi"