1. 類(class)
可見度修飾符: public—在所有類中可見,在其他包中可以用import匯入。
預設—就是沒有修飾符,在同一個包中的類中可見,在其他包中不能用import匯入。
修飾符:final—終態類,表示該類不能被繼承
abstract—抽象類別,不能建立對象
2. 變數(variable)
Java中變數有兩種,方法變數和欄位變數
方法變數只能用一個修飾符:final—表示常量,不能修改
下面是欄位變數的修飾符
可見度修飾符:public—在任何類中可見
protected— 在子類中或同一個包中可見
private—只在本類中可見,子類中也不可見
預設—在同一個包中可見,子類不在一個包中,子類中也不可見
修飾符:static—靜態變數,被類的所有執行個體共用
final—常量,定義後不能修改
*transient—告訴編譯器,在類對象序列化的時候,此變數不需要持久儲存
*volatile—指出可能有多個線程修改此變數,要求編譯器最佳化以保證對此變數的修改能夠被正確的處理
這兩帶*的不是很常用,但也是Java的修飾符,我也不是很清楚
3. 方法(method)
可見度修飾符:public—在任何類中可見
protected—在子類中或同一個包中可見
private—只在本類中可見,子類中也不可見
預設—在同一個包中可見,子類不在一個包中,子類中也不可見
修飾符: static—靜態方法,並不需要建立類的執行個體就可以訪問靜態方法
final—常方法,所有子類不能覆蓋該方法,但可以重載
abstract—抽象方法,在抽象類別中沒有實現的方法
native—本地方法,參見Java Native Interface(JNI)
synchronized —在多線程中,synchronized方法調用時,其他所有方法不能調用該方法
4. 介面(interface)
可見度修飾符:public—所有類中可見
預設—同一個包中可見
介面中的變數總是需要定義為“ public static final 介面名稱”,但可以不包含這些修飾符,編譯器預設就是這樣
因為介面是不可能有直接執行個體的,那樣的話也就是不可能修改(final),也不可能通過執行個體訪問的(static)。
介面中的方法只能使用public和abstract修飾符