Java 成員初始化順序

來源:互聯網
上載者:User

標籤:執行   stat   com   ...   代碼   field   繼承   代碼塊   oid   

package com.cwcec.test;class Fu{    int num = 5;    //構造代碼塊    {        System.out.println("Fu constructor code..." + num);        num=6;    }    public Fu() {        System.out.println("Fu constructor ..." + num);        show();    }     void show() {        System.out.println("show ..." + num);    }    }class Zi extends Fu{    int num = 9;    //構造代碼塊    {        System.out.println("Zi constructor code..." + num);        num = 10;    }    public Zi()     {        System.out.println("Zi constructor ..." + num);    }    void show()    {        System.out.println("show ..." + num);    }}public class FieldDemo {    public static void main(String[] args)    {          new Zi();    }    } 
Output:Fu constructor code...5Fu constructor ...6show ...0Zi constructor code...9Zi constructor ...10 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

class Animal{    public String name = "Ti";    public static int age = 10;    static    {        System.out.println("Animal age : " + age);            }    public Animal()    {        age = 100;        System.out.println("Animal constructor...");    }        public void display()    {        System.out.println("name: " + name);    }    }class Dog extends Animal{    public static int size = 20;    static    {                System.out.println("Dog size : " + size);    }        public Dog()    {        size = 200;        System.out.println("Dog constructor...");    }    public static void sleep() {        System.out.println("Dog sleep...");    }    }public class Single{    public static void main(String[] args) {        Dog dog = new Dog();    }}

總結

1.執行的大致順序如下,

  (1) 在一個不存在繼承的類中:初始化static變數,執行static初始化快-->初始化普通成員變數(如果有指派陳述式),執行普通初始化塊-->構造方法

  (2)在一個存在繼承的類中:初始化父類static成員變數,運行父類static初始化塊-->初始化子類static成員變數,運行子類static初始化塊-->初始化父類執行個體成員變數(如果有指派陳述式),執行父類普通初始化塊-->父類構造方法-->初始化子類執行個體成員變數(如果有指派陳述式)及普通初始化塊-->子類構造方法。

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.