一、訪問控制權限
(1)訪問控制權限都有哪些?
private | 私有 |
public | 公開 |
默認 | |
protected | 受保護 |
(2)以上4個訪問控制權限的,控制範圍是什麼?
訪問修飾符 |
本類 |
同包 |
子類 |
任意位置 |
Public |
可以 |
可以 |
可以 |
可以 |
Protected |
可以 |
可以 |
可以 |
不行 |
默認 |
可以 |
可以 |
不行 |
不行 |
Private |
可以 |
不行 |
不行 |
不行 |
(3)測試
(a)首先我先建立了一個包
(b)在這個包中我定義了一個類,並且給他四個不同類型的訪問權限
(c)在Test類中,我分別去訪問這四個屬性
結果,我發現只有被private修飾的id會報錯,所以private 只能在本類中訪問,即使是同包也不能訪問。
(5)之後,我又在lftgb這個包下面建立了一個類Test2
(6)繼續訪問UserTest
結果我發現只有被public修飾的name沒有被報紅,被protected/默認修飾的age、sex都報紅了。
(7)我再測試用Test2去測試UserTest
用子類去訪問age就可以了,但是這時候我遇到了一個問題,如果我用父類去訪問自己的protected行不?
這種情況下,是不行的。
二、訪問控制權限可以修飾什麼?
屬性 | 4個都可以 |
方法 | 4個都能用 |
類 | public和默認能用,其他不行 |
接口 | public和默認能用,其他不行 |
三、總結
private只可以修飾本類的,proctected和默認可以修飾同包的,其實protected也可以修飾不同包子類的,public都可以。