隐藏/封装(encapsulation)
例如:只能手机只有一个按键,可以提供给用户简单的操作,而不用去考虑内部结构和如何实现。
需要让用户知道的暴露出来,不需要让用户了解的全部隐藏起来,这就是封装。
设计程序追求的是“高内聚,低耦合”。
高内聚:就是类的内部数据操作细节自己完成,不允许外部干涉。
低耦合:仅提供少量的方法给外部使用。
封装的意义:
1.便于调用者的使用
2.良好的封装,便于修改内部代码,提高可维护性。
3.良好的封装,可进行数据完整检测性,保证数据有效性。
使用访问控制符,实现封装
范围越来越大
同一个类 |
同一个包中 |
子类 |
所有类 |
|
private |
* |
|
|
|
default |
* |
* |
|
|
protected |
* |
* |
* |
|
public |
* |
* |
* |
* |
访问权限:
public(公开的):可以被项目中所有类访问。
protected(受保护的):可以被这个类访问,同一个包中所有类访问,被它子类(同一包中或者不同包中)访问。
默认:本类中可以访问,同包下其他类可以访问。
private:仅本类中可以访问。
封装的使用细节
一般使用private(除非本属性确定会让子类继承),提供相应的get/set方法来访问相关属性,这些方法通常是public,从来提供对属性的读写操作。(boolean变量的get方法用 is开头)。