Java:構造代碼塊,靜態代碼塊

來源:互聯網
上載者:User

標籤:代碼執行   AC   cccccc   body   代碼   靜態代碼塊   建構函式   order   變數   

 

本文內容:
  • 局部代碼塊
  • 構造代碼塊
  • 靜態代碼塊
  • 補充

 

 首發日期: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)運行階段男

 

 

構造代碼塊的好處的例子:

建構函式版本:

構造代碼塊版本:

 

靜態代碼塊:

 

  • 靜態代碼塊與構造代碼塊不同的是,它只執行一次,用於對整個類進行初始化,通常是對類變數進行初始化處理。
  • 靜態代碼塊中只能修改類變數。
  • 靜態代碼塊的執行比主函數要早。
  • 有時候因為靜態代碼塊只執行一次。所以有時候會用來“顯示程式流程”。

 

 

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:構造代碼塊,靜態代碼塊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.