zoukankan      html  css  js  c++  java
  • Java 类的成员初始化顺序

    做个简单笔录,就当是重温下基础知识。

    1.先看代码:

      

    package com.test;
    
    public class Test {
    	
        public static void main(String[] args) {
            Son s = new Son();
        }
     
    }
     
    class Parent{
     
    	int parent = 10;
    	
        {
            System.out.println("parent中的初始化块");
        }
        static{
            System.out.println("parent中static初始化块");
        }
         
        public Parent(){
            System.out.println("parent构造方法");
        }
    }
     
    class Son extends Parent{
    	int son = 10;
    	
        {
            System.out.println("son中的初始化块");
        }
         
        static{
        	
            System.out.println("son中的static初始化块");
            
        }
         
        public Son(){
            System.out.println("son构造方法");
        }
         
    }
    

      执行结果:

      

    2.变量和静态变量

      从上面我们可以看到静态语句块普通语句块和构造函数的执行顺序,那么成员变量和静态变量又是怎么实例化的呢?

     

    可见实例成员和实例初始化块,按在代码中出现的顺序依次执行

    3.总结

      属性、方法、构造方法和自由块都是类中的成员,在创建类的对象时,类中各成员的执行顺序:
      1).父类静态成员和静态初始化快,按在代码中出现的顺序依次执行。
      2).子类静态成员和静态初始化块,按在代码中出现的顺序依次执行。
      3). 父类的实例成员和实例初始化块,按在代码中出现的顺序依次执行。
      4).执行父类的构造方法。
      5).子类实例成员和实例初始化块,按在代码中出现的顺序依次执行。
      6).执行子类的构造方法。

  • 相关阅读:
    类加载机制与反射(一)
    Java注解
    Tomcat部署多个项目及相关配置
    Tomcat安装阿里云免费证书
    Java泛型
    Java解析和生成XML
    枚举类
    类成员
    成员变量的初始化和内存中的运行机制
    数据仓库与数据挖掘(一)
  • 原文地址:https://www.cnblogs.com/zhangminghui/p/4409545.html
Copyright © 2011-2022 走看看