黑马程序员技术交流社区
标题:
用this关键字完成构造函数之间的委托
[打印本页]
作者:
God’s favoure
时间:
2014-10-12 14:10
标题:
用this关键字完成构造函数之间的委托
java语言允许一个构造方法委托另一个构造方法完成对象的初始化工作,并且这种委托是通过this关键字完成的。
如例子:
class Person{
public Person(){
this("jack");
}
public Person(String name){
this("jack",12);
}
public Person(String name,int age){
//初始化代码块
}
}
这好像真心不理解!!!
作者:
SelonLiao
时间:
2014-10-12 15:01
同学,不要想复杂了,无非就是调用方法而已
在main方法中创建对象时 , 就调用了无参的构造函数, 而在无参构造函数中又调用了带 name 的构造函数, 在这个构造函数中又调用了带 name 和 int 的构造函数, 由最后个构造函数来实现属性的初始化。
下面有个图,就是调用的过程
code.jpg
(146.78 KB, 下载次数: 63)
下载附件
2014-10-12 14:59 上传
作者:
英雄传说ER
时间:
2014-10-12 18:01
你先要理解为什么要出现委托,委托就是简化一些代码或者解除程序间的耦合性,其实这种完全可以用继承,实现,调用等等很多方法来代替,引用一段话
“当然,不使用委托和事件我们仍然可以设计出解耦的类,然而却会增加很多的类、接口以及关联等等,增加了代码量和程序的逻辑复杂性”
就像你说的例子,如果不使用委托,我们每一个重载的构造函数在初始化对象时,都需要写一堆的构造代码块,而委托——只用调用构造方法就可以,只需要写一次构造代码就可以
作者:
懒羊羊
时间:
2014-10-12 18:15
楼主看了完视频了吗
作者:
God’s favoure
时间:
2014-10-14 11:24
恍然大悟啊,我想的太多了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2