黑马程序员技术交流社区

标题: 关于代码块 [打印本页]

作者: 蓬头小道士    时间: 2015-8-14 22:55
标题: 关于代码块
问题:静态代码块,构造代码块,构造函数 的区别和特点?
哪个童鞋给个解答,谢谢了!
作者: 陈cc    时间: 2015-8-14 23:19
本帖最后由 陈cc 于 2015-8-14 23:22 编辑


静态代码块:只执行一次,每次载入类就会执行,比main还先执行
构造代码块:作用:给对象进行初始化,对象一建立就执行,而且优先于构造函数执行
构造函数:作用:构造函数是用于创建对象,并对其进行初始化赋值,对象一建立就自动调用相对应的构造函数,
                 特点:
                         方法名与类名相同
                         没有返回类型
                         没有返回值
构造代码块和构造函数的区别:
                构造代码块是给所有不同对象的共性进行统一初始化
                构造函数是给对应的对象进行初始化
执行顺序:静态代码块--构造代码块--构造方法
作者: Marx_D    时间: 2015-8-15 08:24
陈cc 发表于 2015-8-14 23:19
静态代码块:只执行一次,每次载入类就会执行,比main还先执行
构造代码块:作用:给对象进行初始化,对象 ...

main方法是静态的 是程序入口,
作者: fantianfei    时间: 2015-8-15 08:29
又模糊了概念。
作者: 永飞    时间: 2015-8-15 08:46
静态代码块是在加载类的同时加载的,无论创建多少对象静态代码快都只执行一次;构造代码块是创建对象时执行的执行完构造代码块,接着执行构造函数。
作者: 永飞    时间: 2015-8-15 08:48
不管是静态代码块还是构造代码块都只是代码块相当于一个整体。
作者: 蓬头小道士    时间: 2015-8-18 22:12
陈cc 发表于 2015-8-14 23:19
静态代码块:只执行一次,每次载入类就会执行,比main还先执行
构造代码块:作用:给对象进行初始化,对象 ...

谢谢了!
作者: beimenshisan    时间: 2015-8-18 22:22
静态只运行一次,随着类的加载而加载,并且多个类所共享-----构造代码块运行在静态之后----构造函数最后运行
作者: 流水王朝    时间: 2015-8-18 22:25
前来学习~~~
作者: lf900827    时间: 2015-8-18 22:26
静态代码块只执行一次,构造代码在每次创建对象的时候都会执行,构造函数是主要是为了创建对象和初始化成员变量的
作者: qlmmys    时间: 2015-8-18 22:55
当用到一个类中的内容时,虚拟机就会把这个类加载到内存中,而这个时候静态代码块就会执行一次,以后就不执行了。而构造代码在每次创建对象的时候都会执行一次,因为构造代码块是给你创建的所有对象初始化的,这时候就是构造函数了。之所以先走构造代码块再走构造函数,是因为构造函数有有参构造,你可能传参了,但是如果先走构造函数,在走构造代码块,那么你传的参数是不是就可能被构造代码块的参数覆盖掉?显然这样是不合理的。
作者: boboyuwu    时间: 2015-8-18 23:15
先执行父类的静态代码块>子类的静态代码块>父类构造代码块>子类构造代码块>父类构造方法>子类构造方法记住就行没必要理解




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