简答题
1、传统的结构化程序设计的优点和缺点是什么?
优点:
(1)这种程序设计方法力求算法描述准确。
(2)对每一子过程模块容易进行程序正确性证明。
缺点:
(1)这种程序设计方法本质上是面向“过程”的,而“过程”和“操作”又是不稳定和多变的,
因此不能直接反映人类求解问题的思路。
(2)程序代码可重用性差。程序中除少数标准库函数外,每设计一个程序时,程序员几乎
从零做起。即使重用代码,通常也是通过拷贝或编辑重新生成一份。
(3)维护程序的一致性困难。该种方法将数据与对数据进行处理的程序代码分离。
2、什么是对象?
每个对象都具有属性(Attribute)和方法(Method)这两方面的特征。对象的属性描
述了对象的状态和特征,对象的方法说明了对象的行为和功能,并且对象的属性值只应由
这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。
3、什么是消息?
在面向对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的
联系来反映。当一个对象需要另外一个对象提供服务时,它向对方发出一个服务请求,而
收到请求的对象会响应这个请求并完成指定的服务。这种向对象发出的服务请求就称为消
息。
4、什么是多态性?
所谓多态性是指当程序中的其他部分发出同样的消息时,按照接收消息对象的不同能够自
动执行类中相应的方法。其好处是,用户不必知道某个对象所属的类就可以执行多态行为
,从而为程序设计带来更大方便。
5、什么是面向对象的程序设计方法?
这种方法将设计目标从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各
自的行为。
在OOP中,将“对象”作为系统中最基本的运行实体,整个程序即由各种不同类型的对象组
成,各对象既是一个独立的实体,又可通过消息相互作用,对象中的方法决定要向哪个对
象发消息、发什么消息以及收到消息时如何进行处理等。
6、面向对象方法的特点是什么?
(1)OOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具
有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一
实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响。
(2)引入了“类”(class)的概念。类与类以层次结构组织,属于某个类的对象除具有该
类所描述的特性外,还具有层次结构中该类上层所有类描述的全部性质,OOP中称这种机
制为继承。
(3)OOP方法的模块性与继承性,保证了新的应用程序设计可在原有对象的数据类型和
功能的基础上通过重用、扩展和细化来进行,而不必从头做起或复制原有代码,这样,大
大减少了重新编写新代码的工作量,同时降低了程序设计过程中出错的可能性,达到了事
半功倍的效果。
7、面向对象的程序设计方法与结构化程序设计方法的比较
(1)传统的结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码
是分离的、相互独立的实体,设计出的程序可重用代码少,且当代码量增加时维护数据和
代码的一致性困难。
(2)面向对象程序设计方法中,对象所具有的封装性和继承性使得代码重用成为可能,并
大大减少了程序出错的可能性。
(3)面向对象方法吸收了结构化程序设计方法的优点,同时引入了新概念、新机制并建立
了比传统方法更高层次的抽象。