java中的修飾符
java中的修飾符主要分為兩種訪問修飾符和非訪問修飾符,下面就是具體的介紹啦,balalallala
一、訪問修飾符
1.default:無修飾符,可以使用的範圍(物件,類,介面,變數,方法)
2.private:在同一類內可見,使用範圍物件,變數,方法(不能修飾類)
類和介面不可被宣告為private,只能被所屬類訪問,類中公共的gette,setterr方法被外部類訪問
idea中建立getter的快捷方法:滑鼠右鍵---》找到Generate就可以啦啦

3.public:對所有類可見,使用範圍物件,類,介面,變數方法
4.protected:對同一包內的類和所有子類可見,使用範圍:物件,變數,方法(不能修飾類)
這個相當複雜了呢
4.1子類與基類在同一包中:
被宣告為protected的變數,方法和構造器能被同一個包中的任何其他類引用
4.2子類與基類不在同一包中:
那麼在子類中,子類可以訪問從基類整合而來的protected方法,而不能訪問基類例項的 protected方法
4.3介面及介面的成員變數和成員方法不能宣告為protected
4.4子類能訪問protected修飾符宣告的方法和變數,保護不相關的類使用這些變數和方法
注:預設訪問修飾符:不適用任何關鍵字,預設使用。如:接口裡的變數隱式宣告:public static final ,接口裡的方法預設為:public
二、非訪問修飾符
1.static修飾符:用於修飾方法和變數
1.1靜態變數:static關鍵字用來宣告獨立於物件的靜態變數 (區域性變數不能被宣告為static變數)
1.2靜態方法:static關鍵字用來宣告獨立於物件的靜態方法,方法中不可使用類的非靜態變數

2.final修飾符:修飾類、方法和變數,final修飾的類不能夠被繼承,修飾的方法不能被繼承類重新定義,修飾的變數為常量不可修改。
2.1final變數一旦被賦值後,不能被重新賦值
2.2final修飾符通常和static修飾符一起使用來建立變數
2.3final方法可以被子類繼承,但不能被子類修改, 宣告方法為final,主要防止該方法被修改
2.4final類不能被繼承
3.abstract修飾符:建立抽象類和抽象方法
3.1抽象類不能用來例項化物件,宣告抽象類的唯一目的就是為了將來對該類進行補充
3.2一個類不能同時被abstract和final修飾
3.3一個類存在抽象方法,那麼類一定要宣告為抽象類
3.4抽象類可以包含非抽象方法
3.5抽象方法沒有任何的事項方法,該方法具體實現由子類提供
3.6抽象方法不能被宣告成final和static
3.7任何繼承抽象類的子類必須實現父類所有的抽象方法

4.synchronize和volatile修飾符:執行緒的程式設計
4.1synchrinize修飾符:宣告的方法同一時間只能被一個執行緒訪問,可以應用於四個訪問修飾符
4.2transient修飾符(阻止變數被序列化):序列化的物件包含被transient修飾的實體變數時,java虛擬機器跳過該特定的變數
4.3volatile修飾成員變數:不可用在final前被執行緒訪問時,強制以共享記憶體中重新讀取該成員變數的值,成員變數發生變化時值會重新讀寫到記憶體中(共享記憶體,兩個不同的執行緒總是看到某個成員變數的同一個值)