1. 程式人生 > >請簡要敘述下Java中修飾符的作用域及可見性?

請簡要敘述下Java中修飾符的作用域及可見性?

public:修飾的成員可以在任何範圍內直接訪問,只是一種最寬鬆的訪問控制等級。需要注意的,所謂的直接訪問仍需要先建立或獲得一個相應類的物件然後才可以使用”物件名.成員“的方式訪問其屬性或呼叫其方法,但是出於資訊封裝和隱藏的需要一般不提倡把成員宣告為public的,而構造方法和需要外界直接呼叫的普通方法則適合宣告為public.

protected:修飾的成員可以在其所在類中、同一包中及子類中(無論子類在不在同一個包)被直接訪問,但不能在位於不同包中的非子類中被直接訪問,這裡需要特別宣告:在位於不同包的子類中必須是子類的物件才能直接訪問其父類的protected成員,而父類自身的物件反而不能訪問其所在類中宣告的protected成員。

default:預設訪問修飾符的成員只能在其所在類中或包中直接訪問,在不同包中即使是不同包的子類也不能直接訪問。

private:成員只能在所在類中被直接訪問,是4種訪問等級最高的一個。

修飾符對比