访问控制是Java面试中常见的考试范围,以前在面试中常被问到,一直在被表格,但还是记不住。主要是总在default和protected里面混,本章中有一个结论protected是为了继承而生的
这句话让我彻底区分开了他们的范围,protected是继承的体现,所以子类一定可以方法,default和protected肯定是不同,所以default只能在同类和同包中访问。果然是知其然,更要知其所以然,否则摔个跟头就忘了。
包:库单元
package语句必须是文件中除了注释外的第一句程序代码
冲突:如果导入两个有相同类名的包,需要用全包名来声明变量
定制工具库:可以用实现静态方法来构造工具库,在使用时用static import
导入包
Java访问权限修饰词
同类中 | 同包中 | 子类中 | 全局 | |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | |
default | √ | √ | ||
private | √ |
接口和实现
- 限定客户端使用和不可使用的界限
- 接口和实现分离
好习惯:成员变量,方法等按照public->protected->default->private排序方便阅读
类的访问权限
通常是public的,不可以private或者protected的,这个有特例,内部类就是可以是private或protected的。