类背后蕴含的基本思想是数据抽象和封装。
数据抽象是一种依赖于接口和实现分离的编程技术。类设计者必须关心类是如何实现的,但使用该类的程序员不必了解这些细节。相反,使用一个类型的程序员仅需要了解类型的接口,他们抽象地考虑该类型做什么,而不必具体地考虑该类型如何工作。
封装是一项将低层次的元素组合起来形成新的、高层次实体的技术。函数是封装的一种形式:函数所执行的细节行为被封装在函数本身这个更大实体中。被封装的元素隐藏了它们的实现细节——可以调用一个函数但不能访问它所执行的语句。同样地,类也是一个封装的实体:它代表若干成员的聚集,大多数良好设计的类类型隐藏了实现该类型的成员。
数据抽象和封装有以下两个重要有点:
1、避免类内部出现无意的、可能破坏对象状态的用户级错误。
2、随时间推移,可以根据需求的改变或者一些缺陷来完善类,而无需改变用户级代码。
如果类内部状态是私有的,则数据成员的改变只可能发生在有限的地方,这样对错误的搜寻是有限的,从而大大方便了程序的维护和修正。