Java 四種訪問修飾符區別
阿新 • • 發佈:2018-12-26
在Java程式語言中有四種許可權訪問控制符,這四種訪問許可權的控制符能夠控制類中成員的可見性。 一、public (1)定義:public是公共的,被public所修飾的成員可以在任何類中都能被訪問到。 (2)修飾的成分: public能用來修飾類,在一個java原始檔中只能有一個類被宣告為public,而且一旦有一個類為public,那這個java原始檔的檔名就必須要和這個被public所修飾的類的類名相同,否則編譯不能通過。說到這裡,穿插多一點知識。一個類作為外部類的時候只能被public或者預設訪問修飾符所修飾,但是一個類如果作為內部類的時候,則可以被四種訪問修飾符所修飾,因為一個類作為內部類的時候,就作為外部類的一個成員屬性了,因此可以有四種訪問修飾符修飾,這是內部類和外部類的一個區別。 public用來修飾類中成員(變數和方法),被public所修飾的成員可以在任何類中都能被訪問到。通過操作該類的物件能隨意訪問public成員。 public在類的繼承上的體現,被public所修飾的成員能被所有的子類繼承下來。 二、protected (1)定義:protected是受保護的,受到該類所在的包所保護。 (2)作用域:被protected所修飾的成員會被位於同一package中的所有類訪問到。同時,被protected所修飾的成員也能被該類的所有子類繼承下來。(注意:這裡是指同一個package或者不同的package中的子類都能訪問) 三、friendly(預設,預設的) (1)定義:friendly是友好的,即在成員的前面不寫任何的訪問修飾符的時候,預設就是友好的。所謂友好的,是對同一package的類友好。 (2)作用域:同一package中的所有類都能訪問。被friendly所修飾的成員只能被該類所在同一個package中的子類所繼承下來。(也就是說只有在同一個package中的子類才能訪問到父類中friendly修飾的成員) 四、private (1)定義:private是私有的,即只能在當前類中被訪問到,它的作用域最小。 下面用一個表格說明四個訪問控制符的作用域: 作用域 當前類 同一package 子孫類 其他package的類 public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × ×