liujijiang

java学习笔记 --6-- 访问权限控制

2020.03.27

访问权限控制

如何把变动的事物和不变的事物分开

权限等级从大到小:

  • public
  • protected
  • 缺省
  • private

java编译时每个类都是编译成.class文件

package cn.redarm.test;

  • 包名通常是域名反写 小写
  • 路径跟在环境变量后

import cn.redarm.test;

使用import时,java在环境变量加类路径下加载

对使用包的忠告

包名就已经表明了路径

private成员你可以随意改变,因为他是本类中访问,所以你不用担心改变这个类成员会导致其他的类出错

protected:继承访问权限

  • 子类可以访问
  • 包内可以访问

protected也提供包访问权限:protected修饰的成员也可以被包内其他类访问

如果一个方法是缺省的,那么这个方法包内访问
如果一个类继承了这个父类,如果两个类不在一个包内的话,子类仍然不能访问父类中的这个缺省的方法
解决这个问题可以用public,但这样所有人都可以访问这个方法了
可以使用protected,因为protected修饰的方法可以在子类中访问,同时也可以在包内访问


接口和实现

访问权限的控制被称为具体实现的隐藏
封装:

  • 数据和方法包装在类中
  • 具体实现的隐藏

类的访问权限

每个编译单元(类)只能有一个public类,表示每个编译单元有单一的对外接口

类名必须与编译单元名相同

类只能有两个修饰符

  • 缺省(包内访问)
  • public