java类中成员的初始化顺序_java类成员初始化顺序

http://blog.csdn.net/fangof/article/details/4844514   2009-11-20 21:57 42人阅读 评论(0) 收藏 举报 (1)初始化的顺序(静态、非静态、final、变量、对象)     对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态变量

public class InitialOderExtends extends Parent {

// 静态变量

public static String s_StaticField = "subclass--static variable";

// 变量

public String s_Field = "subclass--variable";

// 静态初始化块

static {

System.out.println(s_StaticField);

System.out.println("subclass--static block init");

}

// 初始化块

{

System.out.println(s_Field);

System.out.println("subclass--block init");

}

// 构造器 public InitialOderExtends() {

System.out.println("subclass--constructor");

System.out.println("i=" + i + ",j=" + j);

}

public static void main(String[] args) {

System.out.println("subclass main");

new InitialOderExtends(); }}class Parent {

// 静态变量

public static String p_StaticField = "parentclass--static variable";

// 变量

public String p_Field = "parentclass--variable";

prote类成员的初始化有两种形式1,初始化列表进行成员的初始化。2,利用构造函数进行初始化。前者取决于成员在类中的声明顺序,后者取决于函数内变量的顺序。 下面对于两种情况进行代码演示: 1.构造函数进行成员初始化 class Date{

public:

Date(int y,int m,cted int i = 1;

protected int j = 1;

// 静态初始化块

static {

System.out.println(p_StaticField);

System.out.println("parentclass--static block init");

}

// 初始化块

{

System.out.println(p_Field);

System.out.println("parentclass--block init");

}

// 构造器

public Parent() {

System.out.println("parentclass--constructor");

System.out.println("i=" + i + ", j=" + j);

j = 2;

}}

* java类成员的初始化顺序:

父类(静态变量、静态初始化块) > 子类 (静态变量、静态初始化块) > 父类 (成员变量、初始化块)

> 父类构造器 > 子类(成员变量、初始化块) > 子类构造器

* 需要调用父类构造器进行初始化时,子类构造器的第一行代码一定是调用父类构造器。 输出为:parentclass--static variableparentclass--static block initsubclass--static variablesubclass--static block initsubclass mainparentclass--variableparentclass--block initparentclass--constructori=1, j=1subclass--variablesubclass--block initsubclass--constructori=1,j=2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值