Java 類的成員初始化順序

來源:互聯網
上載者:User

標籤:

做個簡單筆錄,就當是重溫下基礎知識。

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 類的成員初始化順序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.