原標題:Java訪問控制權限有哪些?區別是什么?
Java中的類和方法等都是有訪問控制權限的,用來控制方法、類、屬性等的生效范圍,Java有四種訪問控制權限,其中比較常用的就是public和private,今天華清遠見Java學院就和大家分享下4種Java訪問控制權限的區別,希望對大家有所幫助。
Java有四種訪問控制權限:public、protected、friendly(default)、private,這四種權限的作用于如下:
那么,如何理解Java中的這4種訪問控制權限呢?
private:如果一個成員方法或成員變量或內部類名前使用了private訪問控制符,那么這個成員只能在這個類的內部使用。
friendly:如果一個成員方法或成員變量名前沒有使用任何訪問控制符,就稱這個成員所擁有的是默認的(default)訪問控制符。默認的訪問控制成員可以被這個包中的其它類訪問(同一包中的任何類)。如果一個子類與其父類位于不同的包中,子類也不能訪問父類中的默認訪問控制成員。(所以它是針對同一包,不針對子孫類)。
protected:如果一個成員方法或成員變量名前使用了protected訪問控制符,那么這個成員既可以被同一個包中的其它類訪問通過new實例化該類后調用,也可以并只可以被不同包中的子類覆寫或直接調用而非實例化訪問訪問。(同意包類+子孫類)
public:如果一個成員方法或成員變量名前使用了public訪問控制符,那么這個成員可以被所有的類訪問,不管訪問類與被訪問類是否在同一個包中。
他是指該被訪問控制權限修飾的成員的作用域。
比如在包1定義了public父類,子類。那么該子類可以訪問和覆寫的該父類的public/protected/friendly修飾的成員(方法、變量、類)。而在包2內的類中實例化一個包1的子類,也不可以訪問它的或它父類的friendly即protected修飾的成員,但可以繼承它而訪問或覆寫protetcted修飾的成員.在子孫類中并不是指new出來訪問而是指直接訪問。
構造器也有訪問控制權限,但無返回值類型。
以上簡單介紹了一下4種Java訪問控制權限的區別,平時使用的時候大家可以根據需求和環境進行選擇。返回搜狐,查看更多
責任編輯: