java类的成员初始化顺序和初始化块知识
2012-05-27 16:29
337 查看
属性、方法、构造方法和自由块都是类中的成员,在创建类的对象时,类中各成员的执行顺序:
1.父类静态成员和静态初始化快,按在代码中出现的顺序依次执行。
2.子类静态成员和静态初始化块,按在代码中出现的顺序依次执行。
3. 父类的实例成员和实例初始化块,按在代码中出现的顺序依次执行。
4.执行父类的构造方法。
5.子类实例成员和实例初始化块,按在代码中出现的顺序依次执行。
6.执行子类的构造方法。
执行结果:
初始化块主要用于对象的初始化操作,在创建对象时调用,可以用于完成初始化属性值、加载其他的类的功能。
初始化块和构造方法功能类似,可以再创建对象的时候完成一些初始化的操作,一般的情况下,构造方法初始化和初始化块初始化可以通用。
构造方法在初始化的时候可以通过参数船只,但是初始化块不能,初始化块的初始化在构造方法之前执行,如果搞糟方法多次重载,此时可以考虑构造方法中共通的代码放到初始化块中进行初始化。
静态初始化块和非晶态初始化块的区别?
非静态初始化块主要是用于对象的初始化操作,在每次创建对象的时都要调用一次,其执行顺序在构造方法之前。
在初始化块之前有static修饰,则为静态初始化块。由于非静态成员不能再静态方法中使用,同样也不能在静态初始化块中,因此,静态初始化块主要用于初始化静态变量和静态方法,静态初始化块只调用一次,是在类的第一次加载到内存时,并非一定要创建对象才执行,
静态初始化块比非静态初始化块先执行。
1.父类静态成员和静态初始化快,按在代码中出现的顺序依次执行。
2.子类静态成员和静态初始化块,按在代码中出现的顺序依次执行。
3. 父类的实例成员和实例初始化块,按在代码中出现的顺序依次执行。
4.执行父类的构造方法。
5.子类实例成员和实例初始化块,按在代码中出现的顺序依次执行。
6.执行子类的构造方法。
public class Test { /** * Description * @param args */ public static void main(String[] args) { Son s = new Son(); } } class Parent{ { System.out.println("parent中的初始化块"); } static{ System.out.println("parent中static初始化块"); } public Parent(){ System.out.println("parent构造方法"); } } class Son extends Parent{ { System.out.println("son中的初始化块"); } static{ System.out.println("son中的static初始化块"); } public Son(){ System.out.println("son构造方法"); } }
执行结果:
parent中static初始化块 son中的static初始化块 parent中的初始化块 parent构造方法 son中的初始化块 son构造方法
初始化块主要用于对象的初始化操作,在创建对象时调用,可以用于完成初始化属性值、加载其他的类的功能。
初始化块和构造方法功能类似,可以再创建对象的时候完成一些初始化的操作,一般的情况下,构造方法初始化和初始化块初始化可以通用。
构造方法在初始化的时候可以通过参数船只,但是初始化块不能,初始化块的初始化在构造方法之前执行,如果搞糟方法多次重载,此时可以考虑构造方法中共通的代码放到初始化块中进行初始化。
静态初始化块和非晶态初始化块的区别?
非静态初始化块主要是用于对象的初始化操作,在每次创建对象的时都要调用一次,其执行顺序在构造方法之前。
在初始化块之前有static修饰,则为静态初始化块。由于非静态成员不能再静态方法中使用,同样也不能在静态初始化块中,因此,静态初始化块主要用于初始化静态变量和静态方法,静态初始化块只调用一次,是在类的第一次加载到内存时,并非一定要创建对象才执行,
静态初始化块比非静态初始化块先执行。
相关文章推荐
- java类的成员初始化顺序和初始化块知识
- java类的成员初始化顺序和初始化块知识
- java 构造函数 成员函数初始化顺序 以及多态的构造函数的调用顺序
- java类初始化中类成员的执行顺序解析
- 从类变量成员初始化顺序,理解java语法[1]
- 【Java基础知识】继承体系中的成员关系,this,super关键字的使用,数据初始化
- java中成员初始化与构造器初始化的顺序
- java 父类子类静态成员,实例成员,构造函数初始化的顺序
- [转]Java初始化顺序总结 - 静态变量、静态代码块、成员变量、构造函数
- JAVA类成员初始化顺序详解
- Java中的Package.Import.Class以及和C++的比较(二)--类成员初始化及顺序
- java基础,静态变量,静态初始化块,初始化快,成员变量的初始化顺序
- java 构造函数 成员函数初始化顺序 以及多态的构造函数的调用顺序
- java类成员初始化顺序
- Java中含有静态成员的的初始化顺序
- Java - 类创建时各成员的初始化顺序
- java成员变量的初始化顺序
- java中类的静态代码块、构造代码块、构造方法、静态成员的初始化顺序详解
- java类的成员初始化顺序和初始化块知识
- java各种成员的初始化顺序