您的位置:首页 > 编程语言

C专家编程 十六 抽象——取事物的本质特性

2016-11-15 19:23 274 查看
面向对象编程从面向对象设计开始,而面向对象设计从抽象开始。

什么是“对象”?请使用我们新发现的技巧“抽象”,考虑一下现实世界事物的相似之处,如一辆小汽车和一个软件。

在软件中,抽象是非常有用的,因为它允许程序 员实现下列目标:
•隐藏不相关的细节,把注意力集中在本质特征上。
        •向外部世界提供一个“黑盒子”接口。接口确定了施加在对象之上的有效操作的集合, 但它并不提示对象在内部是怎样实现它们的。

        •把一个复杂的系统分解成几个相互独立的组成部分。这可以做到分工明确,避免组件 之间不符合规则的相互作用。
•重用和共享代码。
        C语言通过允许用户定义新的类型(struct、enum)来支持抽象。用户定义类型几乎和预定 义类型(int、char等)一样方便,使用形式也几乎一样。我们说“几乎一样方便”是因为C语言并不允许在用户定义类型中重新定义*、<<、[]、+等预定义操作符。C++则消除了这个 障碍。C++同时提供自动和受控制的初始化、数据在生命期结束后自动清除以及隐式类型转换。这些特性有些是C语言所不支持的,有些在C语言里不是很方便。

        抽象建立了一种抽象数据类型,C++使用类(class)这个特性来实现它。它提供了一种自上而下的、观察数据类型属性的方法来看待封装:把用户定义类型中的各种数据和方法组合在 一起。它同时也提供了一种自底向上的观点来看待封装:把各种数据和方法组合在一起实现一种用户定义类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: