面向对象的程序设计

02-程序设计基础 飞快学 335浏览

考点“面向对象的程序设计”在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以填空题的形式出现,分值为2分,此考点为重点识记内容,读者应该识记几个基本要素的定义、对象的特征以及消息、继承、类的定义。

面向对象的核心

面向过程(结构化程序设计)的核心是算法 + 数据结构,代码运行效率高。但这种设计方法存在两大缺陷:1)随着应用程序的规模扩大,操作与数据分离所带来的维护工作量越来越大;2)不适用于GUI界面、事件驱动编程。

面向对象程序设计是全新的设计思想,站在现实世界的角度来思考程序设计。

面向对象的程序设计 = 对象 + 消息

对象拥有属性、行为,将数据与操作结合在一起;消息是对象(实例)之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。

是具有共同属性、共同方法的对象的集合。它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例(可以认为对象=实例)。

可以定义一个汽车类,由这个类生成多个对象,这些对象具有相同的属性(如颜色),但属性值是不同的(黑色、白色、灰色等)。

面向对象的三大特性

封装 数据及基于其上的操作被封装在对象的内部,对外通过一被授权的接口与程序其他部分交互,对象内部的变化不会影响到程序的其他部分。优点:一个设计成功的对象可以用在不同的程序中;提高了程序的模块化、安全性,降低维护量;提高代码的可复用性。

继承 在已有类的基础上,扩充或改写其某些属性及方法,生成新的类,称为原有类的子类。继承能够直接获得已有的性质和特征,而不必重复定义它们。优点:减少了编程的代码量和代码的重复;继承体现了面向对象的方法对现实世界人们有组织的抽象思维特点的模拟。

多态 对象根据所接收的消息而做出动作,同样的消息被不同的对象接收时可导致完全不同的行动。优点:提高程序的抽象程度;降低程序的维护工作量,降低代码量。

对象的5个基本特点

标识惟一性 指对象是可区分的,并且由对象有的内在本质来区分,而不是通过描述来区分。

分类性 指可以将具有相同属性的操作的对象抽象成类。

多态性 同样的消息被不同的对象接收时可导致完全不同的行动。

封装性 从外面看只能看到对象的外部特性,即只需知道数据的取值范围和可以对该数据施加的操作,根本无需知道数据的具体结构以及实现操作的算法。对象的内部,即处理能力的实行和内部状态,对外是不可见的。从外面不能直接使用对象的处理能力,也不能直接修改其内部状态,对象的内部状态只能由其自身改变。

模块独立性好 对象是面向对象的软件的基本模块,它是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。