1. 程式人生 > 程式設計 >Java構造程式碼塊,靜態程式碼塊原理與用法例項分析

Java構造程式碼塊,靜態程式碼塊原理與用法例項分析

本文例項講述了Java構造程式碼塊,靜態程式碼塊原理與用法。分享給大家供大家參考,具體如下:

本文內容:

  • 區域性程式碼塊
  • 構造程式碼塊
  • 靜態程式碼塊
  • 補充

首發日期:2018-03-28


區域性程式碼塊:

區域性程式碼塊用於限制變數的生命週期,如果希望某些變數在某一過程之後直接失效而不希望被後面繼續操作時,可以使用區域性變數來限制變數的生命週期帶區域性程式碼塊中


構造程式碼塊:

  • 建構函式只對對應的物件進行初始化,構造程式碼塊給類的所有物件進行初始化。
  • 由於構造程式碼塊給類的所有物件進行初始化,所以對於每個物件都要初始化成一樣值的變數,可以防止構造程式碼塊中初始化。
class Person{
  String gender;
  int age;
  { //構造程式碼塊
    System.out.println("構造程式碼塊執行階段");
    gender="男";
  }
  Person(){//建構函式
    System.out.println("建構函式Person()執行階段");
  }
  Person(int age){//建構函式
    System.out.println("建構函式Person(int age)執行階段");
    this.age=age;
  }
  
}

public class Demo {
  public static void main(String[] args) {
    Person p1=new Person();
    System.out.println(p1.gender);
    Person p2=new Person(18);
    System.out.println(p2.gender);
  }
}

上述程式碼結果:

構造程式碼塊執行階段
建構函式Person()執行階段
男
構造程式碼塊執行階段
建構函式Person(int age)執行階段
男

構造程式碼塊的好處的例子:

建構函式版本:

image

構造程式碼塊版本:

image


靜態程式碼塊:

  • 靜態程式碼塊與構造程式碼塊不同的是,它只執行一次,用於對整個類進行初始化,通常是對類變數進行初始化處理。
  • 靜態程式碼塊中只能修改類變數。
  • 靜態程式碼塊的執行比主函式要早。
  • 有時候因為靜態程式碼塊只執行一次。所以有時候會用來“顯示程式流程”。
class Person{
  static String gender;
  int age;
  static {
    System.out.println("靜態程式碼塊執行完成");
    gender="男";//更改的變數只能是類變數
  }
  Person(){//建構函式
    System.out.println("建構函式Person()執行階段");
  }
  Person(int age){//建構函式
    System.out.println("建構函式Person(int age)執行階段");
    this.age=age;
  }
}

public class Demo {

  public static void main(String[] args) {
    Person p1=new Person();
    System.out.println(p1.gender);
    Person p2=new Person(18);
    System.out.println(p2.gender);

  }

}

上述程式碼執行結果:

靜態程式碼塊執行完成
建構函式Person()執行階段
男
建構函式Person(int age)執行階段
男

補充:

  • 各個初始化塊的執行順序:靜態程式碼塊-》構造程式碼塊-》構造方法

更多java相關內容感興趣的讀者可檢視本站專題:《Java面向物件程式設計入門與進階教程》、《Java資料結構與演算法教程》、《Java操作DOM節點技巧總結》、《Java檔案與目錄操作技巧彙總》和《Java快取操作技巧彙總》

希望本文所述對大家java程式設計有所幫助。