黑马程序员技术交流社区
标题:
构造代码块和静态static的区别?
[打印本页]
作者:
2119391569
时间:
2015-3-3 12:25
标题:
构造代码块和静态static的区别?
求解:构造代码块和静态static的区别,构造代码块是给对象进行统一初始化,定义的是对象一出现就具有的属性,静态是用于修饰成员,那么两者之间有什么区别?
作者:
zfgrinm
时间:
2015-3-3 12:35
静态代码块:随着类的加载而执行,故优于构造函数和构造代码块
只执行一次,并优先于主函数。
用于给类进行初始化的。
构造代码块是给所有对象进行初始化的,
对象一建立就执行,且优于构造函数执行。
static代码块给类进行初始化
构造代码块是给对象进行初始化
作者:
yangruijing
时间:
2015-3-3 20:24
代码块
使用{}括起来的一段代码。
根据位置不同可以分为:
普通代码块:就是定义在方法中的代码块。
构造代码块:是对所有的对象进行初始化的,所有对象的共有的特性可以在此代码块中初始化。而构造方法是对指定对象进行初始化的。只要对象一创建,那么构造代码块就会执行,并且优先于构造函数。
静态代码块:使用static关键字声明的,只执行一次,优先于构造块。随着类的加载而加载。
同步代码块:使用synchronized关键字声明的代码块,称为同步代码块。格式:synchronized(同步对象){}
[java] view plaincopy
1./**
2. * 描述人的类
3. */
4.public class Person {
5. private String name;// 属性姓名
6. private int age;// 属性年龄
7.
8. {
9. System.out.println("构造代码块");
10. }
11. static {
12. System.out.println("静态代码块");
13. }
14.
15. public Person() {// 无参构造函数
16. System.out.println("无参构造函数");
17. }
18. public void say() {
19. {
20. System.out.println("普通代码块");
21. }
22.
23. }
24.
25. public void show() {
26. synchronized (this) {
27. System.out.println("同步代码块");
28. }
29. }
30.
31. public static void main(String[] agrs) {
32. Person p = new Person();
33. p.show();
34. p.say();
35. }
36.}
37.结果:
38.静态代码块
39.构造代码块
40.无参构造函数
41.同步代码块
42.普通代码块
43.
从结果可以看出:
静态代码块优先于构造代码块执行。
构造代码块优先于构造方法执行。
普通代码块和同步代码块定义在方法中,无先后顺序。
作者:
硫氢化铁
时间:
2015-3-4 10:47
静态static 是给类进行初始化的,构造代码块是给对象进行初始化的,而且执行顺序也不一样
作者:
fightingwang
时间:
2015-3-4 11:01
yangruijing 发表于 2015-3-3 20:24
代码块
使用{}括起来的一段代码。
根据位置不同可以分为:
回答的很好,赞一个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2