1.訪問修飾符
public:該類和非該類的均能訪問
protect:該類和該類的子類,同一個包內的成員也能訪問
默認:同一個包內的類可以訪問
private:只有該類可以訪問
特性:在繼承的關系中,子類的訪問修飾符的限制性不能大於父類的
• 變量和方法的修飾字public、protected、private • public: • public: 任何其它類、對象只要可以看到這個類的話,那么它就可以存取變量的數據,或使用方法 • 只有在使用 public 訪問修飾符時,類的成員才可被同一包或不同包中的所有類訪問。 • 也就是說,public 訪問修飾符可以使類的特性公用於任何類。 • protected: • 如果一個類中變量或方法有修飾字protected,同一類,同一包可以使用。不同包的類要使用,必須是該類的子類可以存取變量或調用。 • 如果希望一個成員在當前包外可見,但僅僅是成員所在類的子類直接可見,就要使用 protected 修飾該成員。 • private: • private 訪問修飾符是限制性最大的一種訪問修飾符。 • 被聲明為private的成員只能被此類中的其他成員訪問,不能被類外看到。 • 繼承體系結構中最高級別的類決不會被聲明為 private 類。 • 缺省的: • 類是缺省的,該類具有包訪問權限,只能被同一包中的其它類訪問
2. 用static修飾符修飾,可以是變量、方法或代碼塊
• 類中的靜態變量、方法屬於類,而不屬於某個特定的對象。
• 類的靜態成員可以與類的名稱一起使用,而無需創建類的對象。
• 靜態變量或方法也稱為類變量或類方法
靜態方法:
• 與靜態方法相關的幾個要點:
– 類的靜態方法只能訪問其他的靜態成員
– 靜態方法沒有this
– 靜態方法不能被重寫
靜態代碼塊: • 形式:static { ……} • 如果需要通過計算來初始化靜態變量,可以聲明一個靜態塊。 • 靜態塊僅在該類被加載時執行一次
java類屬性和對象屬性的初始化順序: 1. 首先找到類中的所有靜態聲明語句(不管位置在哪),把他們初始化為缺省值; 2. 然后再按照書寫順序依次處理每一個static的東西; 3. 把對象屬性初始化為缺省值; 4. 按照書寫順序依次處理每一個對象屬性的初始化語句最后執行構造函數;
public class Test { // 代碼塊 { System.out.println("3"); } { System.out.println("4"); } static { System.out.println("1"); } static { System.out.println("2"); } public Test() { System.out.println("構造函數"); } public static void main(String[] args) { new Test(); } } 輸出:1.2.3.4.構造函數
3.final
• final關鍵字:final 修飾符可應用於類、方法和變量。 • final在應用於類、方法和變量時意義是不同的,但本質是一樣的:final表示不可改變。 • 聲明為final的類不能被繼承。 • 聲明的方法不能被重寫,如果一個類是final類,那么它的所有方法都隱式的是final方法; • 聲明的變量必須賦初值。它實質上就是一個常量;