访问权限控制
如何把变动的事物和不变的事物分开
权限等级从大到小:
- public
- protected
- 缺省
- private
java编译时每个类都是编译成.class文件
package cn.redarm.test;
- 包名通常是域名反写 小写
- 路径跟在环境变量后
import cn.redarm.test;
使用import时,java在环境变量加类路径下加载
对使用包的忠告
包名就已经表明了路径
private成员你可以随意改变,因为他是本类中访问,所以你不用担心改变这个类成员会导致其他的类出错
protected:继承访问权限
- 子类可以访问
- 包内可以访问
protected也提供包访问权限:protected修饰的成员也可以被包内其他类访问
如果一个方法是缺省的,那么这个方法包内访问
如果一个类继承了这个父类,如果两个类不在一个包内的话,子类仍然不能访问父类中的这个缺省的方法
解决这个问题可以用public,但这样所有人都可以访问这个方法了
可以使用protected,因为protected修饰的方法可以在子类中访问,同时也可以在包内访问
接口和实现
访问权限的控制被称为具体实现的隐藏
封装:
- 数据和方法包装在类中
- 具体实现的隐藏
类的访问权限
每个编译单元(类)只能有一个public类,表示每个编译单元有单一的对外接口
类名必须与编译单元名相同
类只能有两个修饰符
- 缺省(包内访问)
- public