Super&&this

研究問題:

  1. 主方法中靜態代碼塊、構造代碼塊、構造方法順序?

要點:

  • A:靜態代碼塊->main方法->構造代碼塊->構造方法
    B:靜態內容隨着類的加載而加載,靜態代碼塊會優先執行
    C:若存在繼承關係,子類初始化之前先會進行父類初始化
  • super僅僅表示先初始化父類數據,再初始化子類數據。
  • 構造塊:直接在類中定義且沒有加static關鍵字的代碼塊稱爲{}構造代碼塊。構造代碼塊在創建對象時被調用,每次創建對象都會被調用,並且構造代碼塊的執行次序優先於類構造函數。

截圖展示區:

    1.
package com.java.JiCheng;
/*
 * A:靜態代碼塊->main方法->構造代碼塊->構造方法
 * B:靜態內容隨着類的加載而加載
 * 靜態代碼塊內容會優先執行
 * C:子類初始化之前先會進行父類初始化
 */
class FU{
    public FU(){
        System.out.println("父類構造被調用");//5
    }
    static{
        System.out.println("靜態代碼塊FU");//1
    }
    {
        System.out.println("構造代碼塊FU");//4
    }
}

class ZI extends FU{
    public ZI(){
        System.out.println("子類構造被調用");//7
    }
    static{
        System.out.println("靜態代碼塊ZI");//2
    }
    {
        System.out.println("構造代碼塊ZI");//6
    }
}

class SUN extends ZI{
    public SUN(){
        System.out.println("子類的子類還是子類構造被調用");//9
    }
    static{
        System.out.println("靜態代碼塊SUN");//3
    }
    {
        System.out.println("構造代碼塊SUN");//8
    }
}

class extend{
    public static void main(String[] args){
        SUN s=new SUN();
    }
}

運行結果:
這裏寫圖片描述
2. //靜態代碼塊:在java中使用static關鍵字聲明的代碼塊。
 //靜態塊用於初始化類,爲類的屬性初始化。每個靜態代碼塊只會執行一次。
 //由於JVM在加載類時會執行靜態代碼塊,所以靜態代碼塊先於主方法執行。
 //如果類中包含多個靜態代碼塊,那麼將按照”先定義的代碼先執行,後定義的代碼後執行”。
 //注意:1 靜態代碼塊不能存在於任何方法體內。
 //2 靜態代碼塊不能直接訪問靜態實例變量和實例方法,需要通過類的實例對象來訪問。
 

class Code{
    {
      System.out.println("Code的構造塊");//4//6
    }

    static{
        System.out.println("Code的靜態代碼塊");//3//每個靜態代碼塊只加載一次
        }

    public Code(){
        System.out.println("Code的構造方法");//5//7
        }
    }

public class CodeBlock03{
     {
      System.out.println("CodeBlock03的構造塊");//8//10
     }

     static{
        System.out.println("CodeBlock03的靜態代碼塊");//1
        }

    public CodeBlock03(){
         System.out.println("CodeBlock03的構造方法");//9//11
        }

    public static void main(String[] args){
        System.out.println("CodeBlock03的主方法");//2
        new Code();
        new Code();
        new CodeBlock03();
        new CodeBlock03();
    }
}

運行結果:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章