java中的權限修飾符和修飾符

Java中有很多的權限修飾符和修飾符,往往我們在編程的時候,不能正確的使用這些修飾符,甚至有的人根本分不清權限修飾符和修飾符,以下是對修飾符和權限修飾符的一些總結!

首先,爲什麼要有權限修飾符?

答:因爲在我們編寫一個類,並且供人使用的時候,我們只需要滿足一些必要的功能就可以了,而沒有必要把類中的所有方法,成員都給他,這能保證一定的安全性,也體現了Java的封裝性。

權限修飾符:

default:

類,數據成員,構造方法,方法成員,都能夠使用默認權限,即不寫任何關鍵字。

默認權限即同包權限,同包權限的元素只能在定義它們的類中,以及同包的類中被調用

(總結:只要是同一個包中,都可以被調用,範圍是本包)


public:

public可以修飾類,數據成員,構造方法,方法成員。被public修飾的成員,可以在任何一個類中被調用,不管同包或不同包,是權限最大的一個修飾符

(總結:那都能用,範圍是本程序)


private:

private可以修飾數據成員,構造方法,方法成員,不能修飾類(此處指外部類,不考慮內部類)。被private修飾的成員,只能在定義它們的類中使用,在其他類中不能調用。

(總結:在哪個類定義,就在哪個類使用,範圍是本類)


protected:

protected可以修飾數據成員,構造方法,方法成員,不能修飾類(此處指外部類,不考慮內部類)。被protected修飾的成員,能在定義它們的類中,同包的類中被調用。如果有不同包的類想調用它們,那麼這個類必須是定義它們的類的子類

(總結:範圍比default大一點,能在不同的包中進行訪問,只是另一個包中的類需要時該類的子類)



修飾符:

final:

 final的意思是不可變,他可以修飾類、字段、方法。修飾類後類不能被擴展(extends),也就是不能被繼承。修飾字段後字段的值不能被改變,因此如果有final修飾字段,應該對字段進行手動初始化。修飾方法後該方法不能被改變,也就是重寫。

 

static:

static用來修飾內部類,方法,字段。修飾內部類說明該內部類屬於外部類而不屬於外部類的某個實例。修飾字段說明該字段屬於類而不屬於類實例。修飾方法說明該方法屬於類而不屬於類實例。


abstract:

 abstract是抽象的意思,用來修飾類和方法,修飾類後,該類爲抽象類,不能被實例化,必需進行擴展。修飾方法後,該方法爲抽象方法必須被子類重寫(override)。


transient:

告訴編譯器,在類對象序列化的時候,此變量不需要持久保存。


volatile:

指出可能有多個線程修改此變量,要求編譯器優化以保證對此變量的修改能夠被正確的處理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章