面向物件——程式碼塊
阿新 • • 發佈:2018-12-02
1.概念:JAVA中用{ }括起來的程式碼稱為程式碼塊。
2.分類:區域性程式碼塊,構造程式碼塊,同步程式碼塊
a.區域性程式碼塊:在方法中出現,限定變數生命週期,以及早釋放,提高記憶體利用率。
1 public static void main(String[] args){ 2 { 3 int x = 10;4 } 5 System.out.println(x); //這裡的x未被定義 6 }
b.構造程式碼塊(初始化塊):多個構造方法中相同的程式碼放到一起,每次呼叫構造都執行並且在構造方法前執行
public class day1 { public static void main(String[] args){ Person p1 = new Person(); Person p2 = new Person("Smart"); } } class Person{ String name; public Person(String name){ this.name = name; System.out.println("有參構造"); } public Person(){ System.out.println("空參構造"); } { System.out.println("構造程式碼塊"); } } /*輸出結果*/ 構造程式碼塊 空參構造 構造程式碼塊 有參構造
c.靜態程式碼塊:*在類中方法外出現,用於給類進行初始化,在載入時候就執行,並且只執行一次,一般用來載入驅動。
class Student {
public Student() {
System.out.println("Student 構造方法");
}
{
System.out.println("Student 構造程式碼塊");
}
static {
System.out.println("Student 靜態程式碼塊"); //只執行一次
}
}
class day1 {
public static void main(String[] args) {
System.out.println("我是main方法");
Student s1 = new Student();
Student s2 = new Student();
}
static {
System.out.println("day1靜態程式碼塊");
}
}
/*優先順序*/
主函式中 靜態程式碼塊>main函式
成員函式中 靜態程式碼塊>構造程式碼塊
/*輸出結果*/
day1靜態程式碼塊
我是main方法
靜態程式碼塊
構造程式碼塊
Student 構造方法
Student 構造程式碼塊
Student 構造方法