java的初始化顺序_JAVA中初始化顺序复习

static final、static、final区别

static:静态,全局变量,类的对象共享一个静态变量,只初始化一次。

final:常量,如果是方法则不可覆盖,如果是类不可被继承,必须初始化时设置值,设置后就不能改了

static final:静态变量

初始化顺序如下:

父类静态变量(静态初始化话块)> 子类静态变量(静态初始化块)>父类普通变量(普通初始化块)>父类构造方法>父类普通方法

>子类普通变量(普通初始化块)>子类构造方法>子类普通方法

下面是一个例子就说明了这一切

package com.loulijun.test1;

public class Test1 {

public static void main(String args[])

{

Son son = new Son();

son.say();

}

}

class Father

{

//static final 与 static 没有执行先后顺序,按照代码顺序从上而下执行//静态变量 public static String str = initStr("Father:静态变量---1");

//静态常量 public static final int i = initfinal(2);

//普通变量 public int j = init(4);

static int initfinal(int i)

{

System.out.println("Father:静态常量---"+i);

return i;

}

static int init(int j)

{

System.out.println("Father:普通变量---"+j);

return j;

}

//静态初始化块 static

{

System.out.println("Father:静态初始化块---3");

}

static String initStr(String str)

{

System.out.println(str);

return str;

}

//初始化块 {

System.out.println("Father:普通初始化块---5");

}

//构造方法 public Father()

{

System.out.println("Father:父类构造器---6");

}

public void say()

{

System.out.println("Father:普通方法---7");

}

}

class Son extends Father

{

//static final 与 static 没有执行先后顺序,按照代码顺序从上而下执行//静态变量 public static String str = initStr("Son:静态变量---1");

//静态常量 public static final int i = initfinal(2);

//普通变量 public int j = init(4);

static int initfinal(int i)

{

System.out.println("Son:静态常量---"+i);

return i;

}

static int init(int i)

{

System.out.println("Son:普通变量---"+i);

return i;

}

//静态初始化块 static

{

System.out.println("Son:静态初始化块---3");

}

static String initStr(String str)

{

System.out.println(str);

return str;

}

//初始化块 {

System.out.println("Son:普通初始化块---5");

}

//构造方法 public Son()

{

System.out.println("Son:子类构造器6");

}

public void say()

{

System.out.println("Son:普通方法---7");

}

}

运行结果:

Father:静态变量---1

Father:静态常量---2

Father:静态初始化块---3

Son:静态变量---1

Son:静态常量---2

Son:静态初始化块---3

Father:普通变量---4

Father:普通初始化块---5

Father:父类构造器---6

Son:普通变量---4

Son:普通初始化块---5

Son:子类构造器6

Son:普通方法---7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值