1、final:
final關鍵字可用於類、方法、變量前。
final修飾的類不可被繼承,例如java.lang.Math就是一個 final類,不可被繼承。
final修飾變量,在顯示初始化後不可改變變量值,用於常量定義。如果final變量是引用變量,則不可以改變它的引用對象,但可以改變對象的數據(屬性)。
final修飾的方法不可被重寫。
錯誤案例)
package com.sp; public final class Fish { final String name = "魚"; public void method(){ name = "魚"; #此時變量屬性不可再改變 } }
2、static:
2.1)static關鍵字用來修飾變量、方法、遊離塊和內部類,稱這些變量、方法和內部類爲靜態變量、靜態方法和靜態內部類。
2.1.1)案例
package com.sp; import java.util.Calendar; public class Person { String name; static int count ;//人口總數 靜態屬性 public Person() { count++; } public static void main(String[] args) { Person p1 = new Person(); System.out.println("人口總數:"+p1.count); Person p2 = new Person(); System.out.println("人口總數:"+p2.count); Person p3 = new Person(); System.out.println("人口總數:"+p3.count); } }
2.2)static關鍵字聲明一個屬性或方法是和類相關的,而不是和類的某個特定的實例相關,因此,這類屬性或方法也稱爲“類屬性”或“類方法”。
2.3)如果訪問控制權限允許,可不必創建該類對象而直接使用類名加“調用。
2.4)static 不可用於修飾構造器
2.5)static修飾的屬性和方法,對象之間是共享的。
2.6)static修飾的屬性和方法,可以直接用類名調用。
2.7)static遊離塊。
2.7.1)static除了用於修飾變量和方法外,還可以用於修飾類中的遊離塊(自由塊)。
2.7.2)所謂類的“遊離塊”,就是在類中用“{}”包含起來的不屬於任何方法或構造器的代碼段。
2.7.3)使用static來修飾的遊離塊只在類加載的時候執行一次,通常用於初始化靜態變量。
2.7.3.1案例1)
package com.sp; public class Person { String name; static int count ; //人口總數 靜態屬性 public Person() { count++; System.out.println("執行了構造器"); } static { System.out.println("執行了靜態遊離塊"); } { System.out.println("執行了遊離塊"); } public static void main(String[] args) { Person p1 = new Person(); } } //執行了靜態遊離塊,執行了遊離塊,執行了構造器。
2.7.3.2 案例2)
父類:
package com.sp; public class Anmail { public Anmail(){ System.out.println("執行了父類構造器"); } static { System.out.println("執行了父類靜態遊離塊"); } { System.out.println("執行了父類遊離塊"); } }
Person類繼承:
package com.sp; import java.util.Calendar; public class Person extends Anmail { String name; static int count ;//人口總數 靜態屬性 public Person() { count++; System.out.println("執行了子類構造器"); } static { System.out.println("執行了子類靜態遊離塊"); } { System.out.println("執行了子類遊離塊"); } public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person(); } } //執行了父類靜態遊離塊 //執行了子類靜態遊離塊 //執行了父類遊離塊 //執行了父類構造器 //執行了子類遊離塊 //執行了子類構造器
由於博主目前在找框架,很多案例不是很多。如有不足,可指教。