1. 一个类中的初始化顺序
(静态变量、静态初始化块)=>(变量、初始化块、构造器)。
2. 两个具有继承关系类的初始化顺序
父类的(静态变量、静态初始化块)=> 子类的(静态变量、静态初始化块)=> 父类的(变量、初始化块、构造器)=> 子类的(变量、初始化块、构造器)。...
分类:
编程语言 时间:
2014-06-08 04:59:58
阅读次数:
182
对于普通的类而言,可以放在初始化块中的初始化工作其实完全可以放到构造函数中进行,只不过有时会带来些许不便,如有多个构造器,就要在多个地方加上初始化函数完成初始化工作,而如果放到初始化块中的话则只要写一次即可。显然,使用初始化块的代码比不使用初始化块的代码要更简洁。但是,如果只是这一点便利的话,还不足以使用初始化块,其实初始化块真正体现其独一无二的作用是在匿名内部类中,由于是匿名内部类,因而无法写构造方法,但是很多时候还是要完成相应的初始化工作,这时就需要用到初始化块了,特别是Android中大量地使用匿名内...
分类:
编程语言 时间:
2014-06-05 05:08:50
阅读次数:
315
静态代码为什么先于非静态代码这是因为静态代码是在类加载完毕后执行的,而加载类的顺序是先父类后子类,所以静态代码的执行是先执行父类的,然后执行子类的。对于非静态变量以及实例初始化块都是在构造函数里的代码执行前执行。所以静态代码是在类加载后执行,而实例代码是在构造函数执行前执行。但是当我们显示控制类加载...
分类:
其他好文 时间:
2014-05-20 09:04:18
阅读次数:
222
public classTest {public Test()
{System.out.println("
构造函数");}@1:静态初始化块static{System.out.println("static{}");}@2:初始化块{System.out.println("{}");}public...
分类:
编程语言 时间:
2014-05-19 15:35:02
阅读次数:
295
1:默认初始化如果对类中的变量不进行初始化,系统则会初始化变量为对应的值 比如int = 0,
bool = fase String = null;2:手动初始化变量private int age = 23;3:初始化块{ id = 201245; age
= 23;}4:构...
分类:
编程语言 时间:
2014-05-08 12:57:43
阅读次数:
361