Java 類的成員
初始化塊
1、一個類中初始化塊若有修飾符,則只能被static修飾,稱為靜態代碼塊(staticblock ),當類被載入時,類屬性的聲明和靜態代碼塊先后順序被執行,且只被執行一次。
2、static塊通常用于初始化static(類)屬性
classPerson {public static inttotal;static {total = 100;//為total賦初值 }…… //其它屬性或方法聲明
}
3、非靜態代碼塊:沒有static修飾的代碼塊
? 1.可以有輸出語句。
? 2.可以對類的屬性、類的聲明進行初始化操作。
? 3.可以調用靜態的變量或方法。
? 4.若有多個非靜態的代碼塊,那么按照從上到下的順序依次執行。
? 5.每次創建對象的時候,都會執行一次。且先于構造器執行
4、靜態代碼塊:用static 修飾的代碼塊
? 1.可以有輸出語句。
? 2.可以對類的屬性、類的聲明進行初始化操作。
? 3.不可以對非靜態的屬性初始化。即:不可以調用非靜態的屬性和方法。
? 4.若有多個靜態的代碼塊,那么按照從上到下的順序依次執行。
? 5.靜態代碼塊的執行要先于非靜態代碼塊。
? 6.靜態代碼塊只執行一次
final–關鍵字
在Java中聲明類、屬性和方法時,可使用關鍵字final來修飾,表示“最終”。
final標記的類不能被繼承。提高安全性,提高程序的可讀性。
String類、System類、StringBuffer類
final標記的方法不能被子類重寫。
Object類中的getClass()。
final標記的變量(成員變量或局部變量)即稱為常量。名稱大寫,且只能被賦值一次。
final標記的成員變量必須在聲明的同時或在每個構造方法中或代碼塊中顯式賦值,然后才能使用。
finaldouble PI=3.14;
//final修飾類
final class A{
}
class B extends A{ //錯誤,不能被繼承。
}
//final修飾方法
class A{public final void print(){System.out.println(“A”);}
}
class B extends A{ public void print(){ //錯誤,不能被重寫。System.out.println(“尚硅谷”);}
}
//final修飾變量——常量
class A{private final String INFO = “atguigu”; //聲明常量public void print(){//INFO = “尚硅谷”;}
}
//Ps:常量名要大寫,內容不可修改 static final:全局常量