1. 程式人生 > >用例子理解Java許可權修飾符(private,default,protected和public)

用例子理解Java許可權修飾符(private,default,protected和public)

許可權修飾用於限定物件起作用的範圍,也就是,在什麼地方我們能夠訪問到這個物件,在什麼地方我們訪問不到這個物件了,這裡的物件是指屬性、方法、類和介面。

一、許可權修飾符作用於屬性和方法。private,default,protected和public都能作用於屬性和方法。

1.當private作用於屬性和方法時,就只有在同一個類中能訪問它們。例子如下:


但是在同一包中的其它類(Person的子類或者任意其它類)中不能訪問Person類中的私有屬性和私有方法。如下:

2.當default作用於屬性和方法時,除了在同一個類中能訪問它們,同一個包中的其它類(包括該類的子類和任意其它類)中也能訪問它們。當屬性或者方法沒有許可權修飾符時,其實就是default修飾的。例子如下:


在其它包中的類(Person的子類或者任意其它類)中不能訪問Person類中的default修飾的屬性和方法。例子如下:



3.當protected作用於屬性和方法時,除了在同一個類中和同一個包中的類(包括子類和其它任意類)中能訪問它們外,其它包中該類的子類中也能訪問它們。例子如下:


其它包中的除開非子類的其它類中不能訪問Person類中的protected修飾的屬性和方法。例子如下:

4.當public作用於屬性和方法時,除了在一個類中和同一個包中的類(包括子類和其它任意類)中能訪問它們外,其它包中的類(包括子類和其它任意類)中也能訪問它們。例子如下:


二、許可權修飾符作用於類和介面。只有default和public能修飾類和介面。

1.當default修飾類和介面時,類和介面只能在同一包中的類或介面中被訪問。例子如下:

在其它包中的類不能訪問到該包中default修飾的類。例子如下:


2.當public修飾類和介面時,類和介面能被同一包中其它包中的任意類訪問到。例子如下: