java类的加载顺序和实例化顺序(Demo程序) | 您所在的位置:网站首页 › 静态变量和静态代码块执行的先后 › java类的加载顺序和实例化顺序(Demo程序) |
标签:匿名 大于 end 类的加载顺序 learn rgs static The ring 一、main函数中实例化对象父类 package com.learn; public class Father { //静态变量 public static int num_1 = 1; //静态代码块 static { //判断静态变量和静态代码块的执行顺序 System.out.println("Father类的静态变量" + num_1); System.out.println("Father类的静态代码块"); } //普通变量 public int num_2 = 2; //匿名代码块 { System.out.println("Father类的普通变量=" + num_2); System.out.println("Father类的匿名代码块"); } //构造函数 public Father() { System.out.println("Father类的构造函数"); } }子类 package com.learn; public class Son extends Father{ //静态变量 public static int num_3 = 3; //静态代码块 static { //判断静态变量和静态代码块的执行顺序 System.out.println("Son类的静态变量" + num_3); System.out.println("Son类的静态代码块"); } //普通变量 public int num_4 = 4; //匿名代码块 { System.out.println("Son类的普通变量=" + num_4); System.out.println("Son类的匿名代码块"); } //构造函数 public Son() { System.out.println("Son类的构造函数"); } //主函数 public static void main(String[] args) { Son Son = new Son(); } }运行结果 Father类的静态变量1 Father类的静态代码块 Son类的静态变量3 Son类的静态代码块 Father类的普通变量=2 Father类的匿名代码块 Father类的构造函数 Son类的普通变量=4 Son类的匿名代码块 Son类的构造函数 二、main函数中不实例化对象 //主函数 public static void main(String[] args) { //Son Son = new Son(); }运行结果 Father类的静态变量1 Father类的静态代码块 Son类的静态变量3 Son类的静态代码块 三、结论类在加载时:父类静态变量>父类静态代码块>子类静态变量>大于子类静态代码块 类在实例化时:父类非静态变量>父类匿名代码块>父类构造函数>子类非静态变量>子类非静态代码块>子类构造函数 java类的加载顺序和实例化顺序(Demo程序) 标签:匿名 大于 end 类的加载顺序 learn rgs static The ring 原文地址:https://www.cnblogs.com/mlr-wjy/p/12426509.html |
CopyRight 2018-2019 实验室设备网 版权所有 |