java構造程式碼塊的使用
阿新 • • 發佈:2018-12-18
一、構造程式碼塊
- 形式: 只用{}包圍的程式碼塊。
- 作用:給所有物件進行統一的初始化。
- 執行順序:建立物件時,會先執行構造程式碼塊,然後再執行建構函式。
- 構造程式碼塊和建構函式的比較:
相同點:都是給物件進行初始化的。
不同點:構造程式碼塊是給所有物件進行統一的初始化。建構函式是給對應的物件初始化。
二、使用
例1:測試構造程式碼塊的執行順序
以下程式碼建立了兩個物件。每個物件建立過程中,都是先執行了構造程式碼塊,然後再執行對應的建構函式。
package com.initialization; /** * 構造程式碼塊:對所有物件初始化,先於建構函式 */ public class ConstructCodeBlock { public static void main(String[] args) { Person per1=new Person(); System.out.println(); Person per2=new Person("有參"); } } class Person{ { System.out.println("構造程式碼塊在執行"); } Person(){ System.out.println("無參建構函式在執行"); } Person(String str){ System.out.println("有參建構函式在執行"); } }
結果:
例2:構造程式碼塊的實際使用
package com.initialization; /** * 構造程式碼塊的實際使用 */ public class ConstructBlock { public static void main(String[] args) { System.out.println("****建立第一個學生****"); Student stu1=new Student("小明"); System.out.println(); System.out.println("****建立第二個學生****"); Student stu2=new Student(13); } } class Student{ String area; String name; int age; { area="北京"; System.out.println("所在地區:"+area); } Student(String name){ this.name=name; System.out.println("姓名:"+this.name); } Student(int age){ this.age=age; System.out.println("年齡:"+this.age); } }
結果:
三、總結
構造程式碼塊用於物件的初始化。
所有物件建立過程中都會執行構造程式碼塊。
構造程式碼塊執行後,才執行建構函式