java类的加载顺序和实例化顺序(Demo程序) 您所在的位置:网站首页 静态变量和静态代码块执行的先后 java类的加载顺序和实例化顺序(Demo程序)

java类的加载顺序和实例化顺序(Demo程序)

2023-04-19 03:34| 来源: 网络整理| 查看: 265

标签:匿名   大于   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 实验室设备网 版权所有