黑马程序员技术交流社区
标题:
关于this关键字的使用问题
[打印本页]
作者:
梦龙0201
时间:
2015-9-6 09:19
标题:
关于this关键字的使用问题
昨天跟同桌创建了一个关于构造方法的小程序,类里面有一个无参构造函数,一个int类型的构造函数,一个String类型的构造函数;由于关于构造函数互相调用只能放在第一行,无参调用了int类型的构造函数,int 调用了String类型的构造函数,程序可以输出三个函数对应的输出语句;但是当无参调用Sting类型,int调用无参构造函数,输出结果却是int的语句不能输出。这是什么原因
作者:
史柯
时间:
2015-9-6 10:08
楼主把代码贴出来
你这样我也看不太明白
作者:
Ralap军
时间:
2015-9-6 11:08
这应该就是你说的第一种情况:能正常输出
class Demo {
Demo(){
this(8);
System.out.println("这是无参构造");
}
Demo(int num){
this("s");
System.out.println("这是int类型构造");
}
Demo(String str){
System.out.println("这是String类型构造");
}
}
class Test {
public static void main(String[] args){
new Demo();
}
}
复制代码
而这是第二种情况:
class Demo {
Demo(){
this("s");
System.out.println("这是无参构造");
}
Demo(int num){
this();
System.out.println("这是int类型构造");
}
Demo(String str){
System.out.println("这是String类型构造");
}
}
class Test {
public static void main(String[] args){
new Demo();
}
}
复制代码
因为创建对象使用的是无参构造,进入无参构造后,先执行String构造,再回到自身执行无参构造的语句。
int构造就没有执行到。
如果你要全部都执行一次,可以再创建对象时,穿入一个int类型参数,使用new Demo(8);
作者:
purgatory
时间:
2015-9-6 13:39
int 完全没有调用到
作者:
mah707
时间:
2015-9-6 15:55
是不是死循环了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2