java中静态块、main方法、构造块、构造方法的执行顺序复习
2017-08-18 19:06
585 查看
写此文的目的是复习java中静态块、main方法、构造块、构造方法的执行顺序,直接运行下面的代码即可一目了然,不再多说。
/** * 运行父类main方法各个块作用域的执行顺序: * static块(且仅仅执行一次) -> main方法 -> 构造块 -> 构造方法 */ public class Parent { private int age = 0; private String name = null; private static String company = null; static { System.out.println("Parent static block runing"); company = "parent-ahik"; } { System.out.println("Parent constructor block runing"); this.name = "parent"; } public Parent() { System.out.println("Parent construct method Parent() runing"); this.age = 28; } public Parent(int age) { System.out.println("Parent construct method Parent(int age) runing"); this.age = age; } @Override public String toString() { return "Parent{" + "age=" + age + ", name='" + name + '\'' + ", company= '" + company + "' " + '}'; } public static void main(String... args) { System.out.println("Parent main runing"); Parent p1 = new Parent(); System.out.println(p1); Parent p2 = new Parent(33); System.out.println(p2); { int i = 100; System.out.println(i); } int i = 99; System.out.println(i); } } ////////////////////////////////////////////////////////////// /** * 运行子类main方法各个块作用域的执行顺序: * 父类static块(且仅仅执行一次)-> * 子类static块且仅仅执行一次) -> * 子类 main方法 -> * 父类构造块 -> * 父类构造构造方法 -> * 子类构造块 -> * 子类构造方法 */ public class Child extends Parent { private int age = 0; private String name = null; private static String company = null; static { System.out.println("Child static block runing"); company = "child-ahik"; } { this.name = "Child"; System.out.println("Child construct block start runing"); } public Child() { super(66); this.age = 99; System.out.println("Child construct method Child() runing"); } public Child(int age) { super(77); this.age = age; System.out.println("Child construct method Child(int age) runing"); } public static void main(String... args) { System.out.println("Child main runing"); Child c1 = new Child(); System.out.println(c1); Child c2 = new Child(100); System.out.println(c2); } }
相关文章推荐
- java静态代码块/静态属性、构造块、构造方法执行、main方法、普通代码块的顺序
- Java中静态块,静态成员变量,构造块,普通成员变量,构造方法的执行顺序
- java静态代码块/静态属性、构造块、构造方法执行、main方法、普通代码块的顺序
- Java 成员变量 静态块 构造块 构造方法执行顺序测试
- java中静态块,静态方法,非静态方法,构造方法执行的顺序
- 关于静态块、静态属性、构造块、构造方法的执行顺序
- java静态代码块、构造方法、构造块的执行顺序
- java父类子类中静态块非静态块构造方法的执行顺序和继承
- java 中的静态块 构造方法 等的执行顺序
- Java的静态块、模块、构造方法的执行顺序
- java父类子类静态块、块、构造方法的执行顺序
- Java的静态块、模块、构造方法的执行顺序
- 总结java中静态块,静态方法,非静态方法,构造方法执行的顺序
- java 静态块 非静态块 构造方法 执行顺序
- java中静态代码块,构造代码块,构造方法,main方法的执行顺序
- Java的静态块、模块、构造方法的执行顺序
- JAVA中的代码块、静态代码块、构造方法、main方法执行顺序
- java静态代码块、初始化块和构造方法的执行顺序
- java静态代码块和构造方法执行顺序
- 理解Java类中构造方法的执行顺序和变量初始化