封装(面向对象特征之一) : 是指隐藏对象的属性和实现细节,仅对外提供公式访问方法。
在面向对象程式设计方法中,封装 (英语:Encapsulation) 是指一种将抽象性函数接口封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
封装的优点
- 良好的封装能够减少耦合。
- 类内部的结合可以自由修改。
- 可以对成员变量进行更精确的控制
- 隐藏信息,实现细节。
实现Java封装的步骤: - 修改属性的可见性来限制对属性的访问 (一般限制为private)
例如
这段代码中,将name和age属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。 - 对每个值属性提供对外的公共方法访问,也就是创建getter和 setter方法 (将实现变量的首写大写,在前面添加get或set, 变成getter 和 settet方法名)的实现细节部份包装、隐藏起来的方法。
采集this关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的name变量) 之间发生的同名的冲突。
总结:
封装(面向对象特征之一) : 是指隐藏对象的属性和实现细节,仅对外提供公式访问方法。
好处: 将变化隔离; 便于使用; 提高重用性; 安全性
封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。