面向对象的设计思想

(1)为何采用面向对象编程模式?

面向过程开发模式适用于小型软件的开发设计,但是在开发大型应用时,存在以下不足:

(a)开发效率较低; 面向过程设计一个典型特点就是数据和操作分离,对同一数据的不同操作,往往分布在不同地方;如果某个数据发生变化,那么与此数据相关的代码都要修改,操作较为复杂。

(b)软件的可重用性较差。

面向对象编程模式的特点:

(a)开发效率大大提高(b)代码可重用性显著提升(c)软件的可维护性好(d)对大型程序设计支持良好

(2)面向对象包含的基本概念

(a)对象      在面向对象程序设计时,现实中的对象特征被抽象为属性,而行为则被抽象为方法。

(b)消息     对象间通信方式

(c)类   具有相同属性和操作的对象进行归并

(d)方法  当对象接收到消息后,会执行相应的操作(通过调用特定方法实现),C++中的方法为成员函数。

(3)面向对象技术的基本特征

(a)封装  将数据和具体操作的实现代码封装在对象内部,代码实现细节不被外界发现;外界只能通过接口使用该对象

(b)继承  主要是用于实现代码复用

(c)多态   在继承体系中,所有派生类都从基类继承;但由于每个派生类都是独立的实体,因而在接收同一消息时,可能会有不同的响应

(4)为什么封装对面向对象来说很重要

封装的主要目的就是达到接口和实现的分离。通过封装,对内可以隐藏实现的细节,对外通过接口向客户提供相应服务。封装提高了程序的安全性。

(5)接口与实现分离的好处

(a)降低系统复杂性  用户不必关注接口怎么实现,只需了解接口能够实现什么功能即可

(b) 降低系统各组件之间的耦合密度,可维护性较高

(c)简化调试和测试工作

(6)抽象的概念

抽象是对象最简化的接口,提供了用户所期望的服务。抽象是对对象接口的抽象;对于特定的对象,抽象就是一个接口。设计好的抽象必须提供明确的、完整的以及易于理解的说明。

(7) 封装和抽象有何联系

封装将抽象得到的数据和功能相结合,形成一个有机整体;二者紧密联系,封装通过抽象来隐藏实现细节。

(8)继承是否会削弱封装机制

这种说法是不正确的,继承机制并不影响封装机制。在程序中将对象进行封装,使数据和操作成为一个整体。如果该对象所在类是派生类,那么派生类只需将其继承而来的数据和操作与自身独有的数据和操作一起封装即可。

继承和封装都提供了共享代码的手段,提高了代码的可重用性。继承的代码共享是静态的,派生类对象将自动继承基类的代码实现,从而实现派生类对象与基类对象的代码共享;封装的代码共享是动态的,属于某个类的多个实例对象在程序运行时将共享该类指定的代码。

(9)组合是怎样定义的,它有什么作用

组合就是某个对象中包含其他对象的一种机制。如果新类的内部包含已有类的特征,并且不希望将已有类作为接口,则要用到组合。

(10)如何理解动态特性

C++中多态性、虚函数以及动态联编这3个动态特性彼此之间是相互关联的。


参考书籍: 范立峰 李世欣 《你必须知道的222个c++语言问题》


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值