4個
public /protected/默認(rèn)/private
訪問控制修飾符
public和private
- private修飾的成員變量和方法僅僅只能在本類中調(diào)用;
- public修飾的成員變量和方法可以在任何地方調(diào)用。
- public修飾的內(nèi)容是對外提供可以被調(diào)用的功能,需要相對穩(wěn)定;
- private修飾的內(nèi)容是對內(nèi)實現(xiàn)的封裝,如果“公開“會增加維護(hù)的成本。
public class Point{
private int x;
private int y;
Point(int x,int y){...}
public int distance(Point p){...}
}
... ... ...
Point p1 = new Point(1,2);
Point p2 = new Point(3,4);
p1.x = 100
//The field Point.x is not visible
int d = p1.distance(p2);
... ... ...
protected和默認(rèn)訪問控制
- 用protected修飾的成員變量和方法可以被子類及同一個包中的類使用。
- 默認(rèn)訪問控制即不書寫任何訪問控制修飾符。默認(rèn)訪問控制的成員變量和方法可以被同一個包中的類調(diào)用
訪問控制符修飾類
- 對于類的修飾可以使用public和默認(rèn)方式。public修飾的類可以被任何一個類使用;默認(rèn)訪問控制的類只可以被同一個包中的類使用。
- protected和private可以用于修飾內(nèi)部類。
訪問控制符修飾成員
- 訪問控制符修飾成員時的訪問權(quán)限如下表所示
| 修飾符 | 本類 | 同一個包中的類 | 子類 | 其他類 |
|---|---|---|---|---|
| public | 可以訪問 | 可以訪問 | 可以訪問 | 可以訪問 |
| protected | 可以訪問 | 可以訪問 | 可以訪問 | 不能訪問 |
| 默認(rèn) | 可以訪問 | 可以訪問 | 不能訪問 | 不能訪問 |
| private | 可以訪問 | 不能訪問 | 不能訪問 | 不能訪問 |