黑马程序员技术交流社区
标题:
关于毕老师《this关键字在构造函数中的应用》的猜想
[打印本页]
作者:
贾振凯
时间:
2013-3-6 12:06
标题:
关于毕老师《this关键字在构造函数中的应用》的猜想
本帖最后由 贾振凯 于 2013-3-6 12:09 编辑
这集视频里毕老师的那个说法我没太明白,自己构思出来一个不知正确与否:
class Person{
private String name;
private int age;
Person(){
}
Person(String name){
this.name = name;
}
Person(String name,int age){
this(name); //为什么构造函数中调用其他重载构造函数的语句必须要位于第一行?????
this.age = age;
}
}
我是这样想的:
在Pereson p = new Person(jzk"",23);这个语句的初始化过程是
先在堆内分配内存空间给p实体,然后,对象属性的初始化是在执行构造函数之前完成的,所以如果将
Person(String name,int age){
this(name);
this.age = age;
}
变为
Person(String name,int age){
this.age = age;
this(name);
}
那么在执行this调用的另一构造函数前,就需要先进入构造函数完成this.age = age;这一初始化语句,显然是违背对象初始化顺序的。
同理,通过super()调用父类构造函数的语句也要位于子类构造函数中的第一行!!!!
不知正确与否,求高手点评指正,谢过先呵呵。。。。。。
作者:
贾振凯
时间:
2013-3-6 14:29
金币不要啦昆哥,我想知道自己想的对不对呵呵。。。。。。。。。
作者:
Sofoul
时间:
2013-6-1 16:49
有些郁闷,为啥写那么多的构造函数:
Person (String name,int age)
{
this.name=name;
this.age=age;
}这多省事,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2