一、Java访问修饰符
修饰符 | 同一个类 | 同一个包 | 子类 | 任意地方 |
---|---|---|---|---|
private | √ | |||
default | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
通过以上表格可以知道一共有四个访问修饰符,其访问范围从小到大顺序排列
二、如何让一个类和属性的可访问性是最小的
- 可以通过私有构造来控制类的创建,间接的控制类的可访问性
- 可以通过属性私有化来控制外部直接使用此属性
控制类和属性的访问性有什么好处呢
1.隐藏类内部的实现,更加安全
2.达到类或属性的最小可访问性,那势必要提供别的方法,来操作此类,那么在修改本类属性的时候,就不会改动其使用方
三、对于类和属性可访问的设计
- 首先设计出该类需要暴露出来的api,然后将剩下的成员的设计成private类型。然后再其他类需要访问某些private类型的成员时,在删掉private,使其变成包级私有。如果你发现你需要经常这样做,那么就请你重新设计一下这个类的api。
- 对于protected类型的成员,作用域是整个系统,所以,能用包访问类型的成员的话就尽量不要使用保护行的成员。
- 不能为了测试而将包中的类或者成员变为public类型的,最多只能设置成包级私有类型。
- 实例域绝对不能是public类型的。