1. 程式人生 > >面向物件——程式碼塊

面向物件——程式碼塊

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 構造方法