java基礎學習之四:修飾符

趙明威發表於2015-11-23

一、修飾符分類

java中的修飾符分為:

  • 類修飾符
  • 欄位修飾符
  • 方法修飾符
修飾符成員變數方法
public 可以從所有的類中訪問
  • public類必須定義在和類名相同的同名檔案中
  • 可以被其他類繼承,實現
  • 介面只能有public修飾
可以被任何類訪問(使用)
只能是成員變數了
可以從所有類訪問
protect 不可修飾
  • 可以被同一包中的所有類訪問
  • 可以被所有子類訪問
  • 子類沒有在同一包中也可以訪問
  • 可以被同一包中的所有類訪問
  • 可以被所有子類訪問
  • 子類沒有在同一包中也可以訪問
private 修飾內部類 只能夠被當前類的方法訪問 只能夠被當前類的方法訪問
static 不可修飾類 靜態變數(又稱為類變數,其它的稱為例項變數)
  • 可以被類的所有例項共享。
  • 並不需要建立類的例項就可以訪問靜態變數
  • 靜態方法
    (又稱為類方法,其它的稱為例項方法)
  • 提供不依賴於類例項的服務
  • 並不需要建立類的例項就可以訪問靜態方法
final使用此修飾符的類不能夠被繼承
  • 常量,值只能夠分配一次,不能更改
  • 注意不要使用const,
    可以同static一起使用,避免對類的每個例項維護一個拷貝
防止任何子類過載該方法
注意不要使用const, 可以同static一起使用,避免對類的每個例項維護一個拷貝
abstract如果要使用abstract類,之前必須首先建一個繼承abstract類的新類,新類中實現abstract類中的抽象方法。
類只要有一個abstract方法,類就必須定義為abstract,但abstract類不一定非要保護abstract方法不可
不可修飾變數
  • 抽象方法,類中已宣告而沒有實現的方法
  • 抽象方法,類中已宣告而沒有實現的方法
transient不修飾類告訴編譯器,在類物件序列化的時候,此變數不需要持久儲存告訴編譯器,在類物件序列化的時候,此變數不需要持久儲存不可修飾方法
volatile不修飾指出可能有多個執行緒修改此變數,要求編譯器優化以保證對此變數的修改能夠被正確的處理不修飾
native不修飾不修飾 用該修飾符定義的方法在類中沒有實現,而大多數情況下該方法的實現是用C、C++編寫的。 參見Sun的Java Native介面(JNI),JNI提供了執行時載入一個native方法的實現,並將其於一個Java類關聯的功能
synchronized不修飾不修飾多執行緒的支援
當一個方法被呼叫時,沒有其它執行緒能夠呼叫該方法,其它的synchronized方法也不能呼叫該方法,直到該方法返回
package 可以被同一個包中的類訪問(使用)
預設的訪問許可權,可以省略此關鍵字,可以定義在和public類的同一個檔案中
不修飾不修飾
default (預設無修飾符)不可以被包外的類訪問成員變數不可以被其他類訪問
區域性變數不可以被方法外的方法訪問
不可以被包外的訪問

參考文章:

Markdown之表格的處理

相關文章