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

面向对象编程从面向对象设计开始,而面向对象设计从抽象开始。

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

在软件中,抽象是非常有用的,因为它允许程序 员实现下列目标:
•隐藏不相关的细节,把注意力集中在本质特征上。
        •向外部世界提供一个“黑盒子”接口。接口确定了施加在对象之上的有效操作的集合, 但它并不提示对象在内部是怎样实现它们的。
        •把一个复杂的系统分解成几个相互独立的组成部分。这可以做到分工明确,避免组件 之间不符合规则的相互作用。

•重用和共享代码。

        C语言通过允许用户定义新的类型(struct、enum)来支持抽象。用户定义类型几乎和预定 义类型(int、char等)一样方便,使用形式也几乎一样。我们说“几乎一样方便”是因为C语言并不允许在用户定义类型中重新定义*、<<、[]、+等预定义操作符。C++则消除了这个 障碍。C++同时提供自动和受控制的初始化、数据在生命期结束后自动清除以及隐式类型转换。这些特性有些是C语言所不支持的,有些在C语言里不是很方便。

        抽象建立了一种抽象数据类型,C++使用类(class)这个特性来实现它。它提供了一种自上而下的、观察数据类型属性的方法来看待封装:把用户定义类型中的各种数据和方法组合在 一起。它同时也提供了一种自底向上的观点来看待封装:把各种数据和方法组合在一起实现一种用户定义类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值