基本概念
利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户无需知道对象内部的细节,但可以通过对象对外提供的接口来访问该对象。
如何实现
封装性主要通过权限修饰符来实现。
java规定了4种权限修饰符,分别是缺省、private、public、protected,四种修饰符的权限如下:
-
default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
-
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
-
public : 对所有类可见。使用对象:类、接口、变量、方法
-
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
如下表所示:

使用场景
- 私有化(private)类的属性,提供公共(public)的get和set方法,对此属性进行获取和修改
- 将类种不需要对外暴露的方法,设置为private
- 单例模式中构造器private的了,避免在类的外部创建实例