一、简介
描述:
- 生活中,我们要看电视,只需要按一下开关和换台就可以了。我们没有有必要了解电视机内部的结构。
- 制造厂家为了方便我们使用电视,把复杂的内部细节全部封装起来,只给我们暴露简单的接口,比如电源开关。
- 需要让用户知道的暴露出来,不需要让用户了解的全部隐藏起来,这就是封装。
概念:
- 我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉。低耦合就是仅暴露少量的方法给外部使用。
- 在定义一个对象的特性的时候,有必要决定这些特性的可见性,即哪些特性对外部是可见的,哪些特性用于表示内部状态。
- 通常,应禁止直接访问一个对象中数据的实际表示(属性),而应通过操作接口来访问,这称为信息隐藏,即封装。
二、封装的步骤
- 使用'private'关键字修饰需要封装的属性。
- 提供公开的方法设置或者访问私有的属性,例如set/get方法。
示例:
class Person {
/* 使用private封装name属性 */
private String name;
/* 提供公开的setName方法给外部,用于设置name属性 */
public void setName(String name) {
this.name = name;
}
/* 提供公开的getName方法给外部,用于获取name属性 */
public String getName() {
return this.name;
}
}
public class Test {
public static void main(String[] args) {
Person person = new Person();
person.setName("张三");
System.out.println(person.getName());//张三
}
}
三、作用和意义
- 便于修改内部代码,提高系统的可维护性。
- 提高程序的安全性,保护数据。
- 可进行数据完整性检测,保证数据的有效性。
- 隐藏代码的实现细节。
- 统一用户的调用接口。
- 便于调用者调用。