第六章:访问权限控制
一、为何出现权限控制
由于写的类库会被别人调用,后续对代码进行优化时不确定哪些方法被使用了,不方便开发人员调整,所有设置权限控制
二、包、库单元
作用:
定义与使用:
package com.midea.ihr.salary.core.service.impl;//设置包名(名称空间)用于限制不同不同路径结构下相同的类名
import java.util.*; //可以导入 java.util包下所有的类,但是不建议使用,对性能不是很好,加载过多不必要的类
import java.util.ArrayList; //导包
public class CnbCheckSalaryInfoServiceImpl{
org.apache.commons.lang.StringUtils.isNotBlank(fullUnitId) //使用包名区分不同包下同名的类
}
simple.java源码文件:
①称作一个编译单元
②这个编译单元只能有一个public修饰的类,而且文件名必须和类名一致(首字母大写,包含大小写一致)
③编译单元中可以含有其他的类,但不能使用public修饰
④编译单元中含有其他的类由于不能使用public修饰,所以在包之外无法被看见
⑤编译单元中的非public类是为主public类提供支持的
⑥一个编译单元,可以编译出多个class文件,因为可能存在内部类
2.1、代码组织
package:(小写)
①包名应该使用独一无二的域名,为了使用maven管理时,不会出现冲突情况
②可以使该java文件对应的class文件同属一个群组
③起始package后面的包名就是本类所在的文件路径所在地址,命名空间区分
java解释器的运行过程:①找到系统中配置的环境变量classpath,作为根目录 ②然后将包名根据操作系统转成路径地址 ③找到和类名一致 的class文件
三、java访问权限修饰词
访问权限修饰的成员是否可访问 | public | protected | friendly(default) | private |
---|---|---|---|---|
本类 | 是 | 是 | 是 | 是 |
相同包非子类 | 是 | 是 | 是 | 否 |
不同包子类 | 是 | 是 | 否 | 否 |
是 | 否 | 否 | 否 |
访问权限控制是具体实现的隐藏,称作封装,通过get、set 方法访问。