Java 运行的顺序
来源:互联网 发布:淘宝商品的详情页 编辑:程序博客网 时间:2024/05/18 13:28
实例化类的顺序: 1. 静态块 2. 父类构造器 3. 块 4. 类构造器
父类静态块-〉自身静态块-〉父类块-〉 父类构造器-〉 自身块-〉 自身构造器
父类静态成员变量(或静态块)-〉自身静态成员变量(或静态块)-〉父类成员变量赋值-〉父类块赋值-〉父类构造器赋值-〉自身成员变量赋值-〉自身块赋值-〉自身构造器赋值
1.静态成员变量和静态块,运行顺序与 声明顺序一致。
2.类的初始化阶段:在类加载的init阶段,类的类构造器中会收集所有的static块和字段并执行,static块只执行一次,有JVM保证其只执行一次。
非静态块,每次创建对象时,会在构造函数之前调用。构造函数每次在创建对象最后调用。
3.创建子类对象,先创建父类对象,再创建子类对象。
public class Mastiff extends Dog { public Mastiff() { System.out.println("Mastiff"); } { System.out.println("block"); } static { System.out.println("static block"); } public static void main(String[] args){ Mastiff mastiff=new Mastiff(); } }
/** *DOG父类 */public class Dog {public Dog() {System.out.println("Dog");}}
<span style="font-size: medium;">/** *DOG父类 */public class Dog {public String type="父类成员变量赋的值";public Dog() {System.out.println("父类构造器--type-->"+type);type="父类构造器赋的值"; System.out.println("父类构造器----type--->"+type);}{System.out.println("block---type--->"+type);type="父类块赋的值";}}</span>
public class Mastiff extends Dog {public String type="成员变量赋的值";public Mastiff() {System.out.println("构造器---type--->"+type);type="构造器赋的值";}public void say(){System.out.println("say---type---->"+type);}{System.out.println("block---type--->"+type);type="块赋的值";}public static void main(String[] args){Mastiff mastiff=new Mastiff();mastiff.say()</span><span style="font-size: medium;">;</span><span style="font-size: medium;">}}
- Java 运行的顺序
- java基本的运行顺序
- Java Applet的运行顺序
- Java Applet的运行顺序
- Java类的基本运行顺序
- Java类的基本运行顺序
- Java类的基本运行顺序
- java类的基本运行顺序
- 一个基本java类的运行顺序
- Java类的基本运行顺序
- Java程序运行的初始化顺序
- java线程不同优先级的运行顺序
- Java类的基本运行顺序
- Java类的基本运行顺序
- java程序运行顺序
- java运行顺序
- JAVA基本运行顺序
- java程序运行顺序
- 不要被C++“自动生成”所蒙骗
- x264 编译
- 笔记二:画形状
- AES相关资料
- 成长的第一天~~
- Java 运行的顺序
- ubuntu apache不显示出错信息解决办法
- Markdown 语法说明
- 贝叶斯及其部分应用
- 基础算法荟萃目录
- usaco_1.4.3
- 哈夫曼编码(备忘)
- 编译程序与操作系统的关系
- 2013 长春网络赛 水题题解&反思