黑马程序员技术交流社区

标题: 构造函数和构造代码块,静态代码块到底干嘛用? [打印本页]

作者: 兜兜转转    时间: 2013-8-24 11:07
标题: 构造函数和构造代码块,静态代码块到底干嘛用?
本帖最后由 兜兜转转 于 2013-8-27 07:58 编辑

构造函数和构造代码块,静态代码块到底干嘛用?  我只知道执行顺序,总是听大家说是构造代码快是给对象初始化的,静态代码快是给类初始化的,到底初始化什么东西了?初始化对象,又给对象初始化什么东西了呢?构造函数到底是给对象初始化还是给成员变量初始化?

作者: 夜默    时间: 2013-8-24 12:57
我估计是以后开发中某个小细节会用到,现在么,学习阶段作为了解就行
作者: 未知数|X|    时间: 2013-8-24 13:32
比如说你在加载这个累之前想初始化一些变量,例如 在连接数据库时 我想要在加载这个类时就自动和数据库取得连接,我们可以把连接步骤写静态代码块中当然也可以写在构造函数中,也可以进行变量的初始化操作,例如有参的构造函数 我们在进行声明对象时就可以把值传进去 进行初始化
作者: 王广亚    时间: 2013-8-24 20:14
本帖最后由 王广亚 于 2013-8-24 20:16 编辑

构造函数:是对对象初始化的,没建立一个对象时就初始化。好比有个猫类,要要创建一个猫实例就初始化
               这个实例。要初始化什么呢?猫可以是黑色的吧。所以你初始化时可以让他拥有黑色的毛,当然也
               可以是白色的。
构造代码块:是对所有对象初始化的。还是打猫类的比喻。要要创建一个猫实例就初始化
                  这个实例。要初始化什么呢?猫天生是“喵喵”叫吧。所以你初始化时可以让他拥有
                  “喵喵”叫。因为所有的猫都是喵喵叫,所以初始化时就可以放在构造代码快中了。只要一创建
                  猫的实例,他就会“喵喵叫”,而不是汪汪叫。
构造代码块与构造函数的区别就是:
                                                构造代码块中初始化的是所有的猫共有的特性;
                                                构造函数中初始化的哪一只猫特有的(或者说不是共有的)特性;
                                               猫可以是黑色的也可以是白色的各种颜色的猫都可以,但是猫的叫声
                                               只有喵喵一种是所有猫共有的。
关于静态代码块我还没想到合适的例子,看了上楼的回答,我还是支持一下她的吧。

作者: 黄文伯    时间: 2013-8-26 15:13
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2