黑马程序员技术交流社区
标题:
关于构造代码块和静态代码块的区别及书写位置。
[打印本页]
作者:
薆情媬証書
时间:
2013-10-12 17:05
标题:
关于构造代码块和静态代码块的区别及书写位置。
亲们,帮我解释下,
构造代码块,和静态代码块的区别,和书写位置,以及何时使用这两种代码块??
感激不尽!!
作者:
hyz123456
时间:
2013-10-12 17:28
静态代码块是在类加载的时候就执行的,并且只执行一次,所以可以用来给本类初始化
构造代码块优先于构造函数执行,每个构造函数执行时会先执行一次构造代码块,可以用来给构造函数初始化定义!
作者:
薆情媬証書
时间:
2013-10-12 18:13
hyz123456 发表于 2013-10-12 17:28
静态代码块是在类加载的时候就执行的,并且只执行一次,所以可以用来给本类初始化
构造代码块优先于构造函 ...
位置呢?应该如何放呢?
作者:
薆情媬証書
时间:
2013-10-12 18:13
hyz123456 发表于 2013-10-12 17:28
静态代码块是在类加载的时候就执行的,并且只执行一次,所以可以用来给本类初始化
构造代码块优先于构造函 ...
位置呢?应该如何放呢?
作者:
郑齐育
时间:
2013-10-12 18:22
可以这样理解:静态构造代码块对了类的初始化,既然是对类的初始化所以是在类加载时执行,又由于类在jvm中是以唯一的类的.class的字节码文件形式存在的,所以仅执行一次。
构造代码块主要是对类的对象的共性进行初始化,所以每创建一次对象就要调用一次构造代码块的代码,使得类的所有对象有相同的初始化属性。
举例:车的图纸是类,生产出来的每辆车是类的对象。静态代码块可以理解为是对图纸的初始化(规定图纸的各个参数等)构造代码块是对所有生产的车进行初始化(比如初始化车刹车方向盘等)。
这是我的理解,希望对你有用。
作者:
郑齐育
时间:
2013-10-13 09:40
两个都是放在类中就行了,你想如果是放在构造函数里,对于有构造函数重载的类,岂不是要将构造代码块在每个构造函数中都放一份,才能保证对象的共性进行相同的初始化,至于静态代码块,有静态两个字就说明与具体对象无关,优先于对象而存在,与类相关,肯定是放在类中了。只有当静态代码块中访问了类中的静态成员或这是方法,这时才要求静态代码块要放在其它静态的前面,因为程序是按照顺序执行的,静态成员和静态方法先执行,才能保证静态代码块能够调用。
作者:
完美恋爱
时间:
2013-10-13 14:31
构造代码块的作用是给对象进行初始化,对象一建立就执行,而且优先于构造函数执行,构造代码块是给所有不同对象的共性进行统一初始化
而静态代码块它只执行一次,它比main还先执行,执行顺序是静态代码块--构造代码块--构造方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2