什么是封装?
为什么要使用封装(使用封装的优点)信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节,但可以通过该对象对外的提供的接口来访问该对象(实体类封装)
1. 良好的封装能够减少耦合。(编写代码原则为:高内聚,低耦合)
a) 耦合:代码块间的联系。(在java中多指类之间的关系)
b) 内聚:内聚是代码块间的独立性
c) 高内聚和低耦合的表现形式
i. 低耦合:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单
ii. 高内聚:代码内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则
2. 类内部的结构可以自由修改。
3. 可以对成员进行更精确的控制。
4. 隐藏信息,实现细节。
c) 封装总结(封装从根本意义上讲就是要实现代码的隐藏)
封装即将属性和方法封装到类中,通过访问修饰符保证了数据的安全性。而且在使用者调用方法时不在关心代码的实现过程,只需要关心功能即可。(注:代码的隐藏指使用者不用关心代码的实现,而不是现实意义中的看不到实现代码)
d) 封装的分类
i. 代码的封装(类)
1. 将功能代码和数据分类
ii. 类的封装(包)
1. 将同一共能的类封装到一个包路径下。