您的位置:首页 > 编程语言 > Java开发

Java执行顺序

2013-02-26 20:34 134 查看
java在实例化时,一些静态方法,方法快,构造方法等的执行顺序!

Java代码


/*

* 父类含构造方法、静态块与非静态块

*/

public class Test0 {

public Test0(){

System.out.println("Test0 constructor parent!");

}

static {

System.out.println("static block test0! parent");

}

{

System.out.println("block test0! parent");

}

}

Java代码


/*

* 子类方法含静态块非静态块及构造方法

*/

public class Test1 extends Test0{

Test1(){

System.out.println("Test1 constructor");

}

{

System.out.println("block test1" );

}

static {

System.out.println("static block test1!");

}

public static void main(String args[]){

//System.out.println("main method!");

Test1 test1 = new Test1();

}

}

执行结果为;

static block test0! parent

static block test1!

block test0! parent

Test0 constructor parent!

block test1

Test1 constructor

所以在实例化对象时的顺序为:

父类静态块

子类静态块

父类块

父类构造函数

子类块

子类构造函数

非实例化对象时的结果为:

static block test0! parent

static block test1!

main method!

仅执行静态代码块

java中赋值顺序

成员变量,静态块,块,构造方法赋值顺序测试

Java代码


/*

* 父类含构造方法、静态块与非静态块

*/

public class Test0 {

String para = "成员变量父类 aaa";

public Test0(){

para = "constructor 父类 aaa";

System.out.println(para);

}

static {

String para1 = "static block 父类 aaa";

System.out.println(para1);

}

{

System.out.println(para);

para = "block 父类aaaa";

System.out.println(para);

}

}

Java代码


/*

* 子类方法含静态块非静态块及构造方法

*/

public class Test1 extends Test0{

public String para = "成员变量子类 aaaa";

Test1(){

para = "constructor 子类aaaa";

System.out.println(para);

}

{

System.out.println(para);

para = "block 子类aaaa";

System.out.println(para );

}

static {

String para1 = "static block 子类aaaa";

System.out.println(para1);

}

public static void main(String args[]){

//System.out.println("main method!");

Test1 test1 = new Test1();

}

}

执行结果为:

static block 父类 aaa

static block 子类aaaa

成员变量父类 aaa

block 父类aaaa

constructor 父类 aaa

成员变量子类 aaaa

block 子类aaaa

constructor 子类aaaa

总结为执行顺序为:

1、静态父类代码块

2、静态子类代码块

3、父类成员变量

4、父类代码块

5、父类构造方法

6、子类成员变量

7、子类代码块

8、子类构造方法

执行顺序为:

静态代码块-->代码块-->构造方法

父类的快-->父类的构造器-->自身块-->自身构造器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: