Java代码块运行顺序细节阐述(java代码块的作用)

  本篇文章为你整理了Java代码块运行顺序细节阐述(java代码块的作用)的详细内容,包含有java 代码块 java代码块的作用 java代码块的写法有哪两种风格 java代码块的流行风格有哪些 Java代码块运行顺序细节阐述,希望能帮助你了解 Java代码块运行顺序细节阐述。

  以下这个例子非常好的阐述了父子类同时存在时静态代码块/静态变量初始化,普通代码块/普通成员变量初始化,构造器之间的具体运行顺序。

  注意,在构造器开头,我们可以看作按顺序隐藏了以下两行关键执行步骤:

  

super();

 

  普通代码块和普通属性的初始化...

  

 

  具体例子如下,运行顺序在代码注释中以数字括号给出~

  

public class CodeBlockDetail {

 

   public static void main(String[] args) {

   //(1) 进行类的加载

   //1.1 先加载 父类 A02 1.2 再加载 B02

   //(2) 创建对象

   //2.1 从子类的构造器开始

   new B02();//对象

  class A02 { //父类

   private static int n1 = getVal01();

   static {

   System.out.println("A02的一个静态代码块..");//(2)

   System.out.println("A02的第一个普通代码块..");//(5)

   public int n3 = getVal02();//普通属性的初始化

   public static int getVal01() {

   System.out.println("getVal01");//(1)

   return 10;

   public int getVal02() {

   System.out.println("getVal02");//(6)

   return 10;

   public A02() {//构造器

   //隐藏

   //super()

   //普通代码和普通属性的初始化......

   System.out.println("A02的构造器");//(7)

  class B02 extends A02 {

   private static int n3 = getVal03();

   static {

   System.out.println("B02的一个静态代码块..");//(4)

   public int n5 = getVal04();

   System.out.println("B02的第一个普通代码块..");//(9)

   public static int getVal03() {

   System.out.println("getVal03");//(3)

   return 10;

   public int getVal04() {

   System.out.println("getVal04");//(8)

   return 10;

   public B02() {//构造器

   //隐藏了

   //super()

   //普通代码块和普通属性的初始化...

   System.out.println("B02的构造器");//(10)

  

 

  以上就是Java代码块运行顺序细节阐述(java代码块的作用)的详细内容,想要了解更多 Java代码块运行顺序细节阐述的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: