您的位置:首页 > 其它

面向对象思想

2016-04-20 17:17 176 查看
一、面向对象与面向过程(结构化)思想的对比

结构化编程的基本方法是“功能分解法”,具体来说,就是将要解决的实际问题进行分解,把一个大问题分成若干个子问题,每个子问题又可以被分解为更小的问题,直到得到的

子问题可以用一个函数来实现为止。

程序=数据结构+算法

数据结构代表了要处理的信息,而算法则表明要对这些信息进行哪些处理工作。

(1)结构化软件系统的基本编程单位是函数。

(2)整个系统按功能划分为若干个模块,每个模块都由逻辑上或功能上相关的若干个函数构成,各模块在功能上相对独立。 

(3)公用的函数存放在公用模块中,各模块间可以相互调用,拥有调用关系的模块形成一个树型结构,这种调用关系应尽可能做到是单向的。

对比结构化的程序,面向对象的程序具有以下几个特点:

(1)所有的函数都放入到一个类中,成为某个类的成员,类是编程的基本单元。

(2)外界不能直接调用类的成员函数,必须先创建一个对象,再通过对象来调用这些函数。

(3)只有声明为public 的函数可以被外界调用,其余声明为private 的函数是私有的,外界无法访问。

二、封装

封装的类=数据+对此数据所进行的操作(即算法)

三、抽象

在使用面向对象的方法设计一个软件系统时,首先就要区分出现实世界中的事物所属的类型,分析它们拥有哪些性质与功能,再将它们抽象为在计算机虚拟世界中才有意义的实体——类,在程序运行时,由类创建出对象,用对象之间的相互合作关系来模拟真实世界中事物的相互关联。

四、继承与多态

现在要开发一个B 项目,架构设计师发现以前完成的A 项目中有部分类完全可以在B项目中重用,但需要增强这些类的功能以便适用于B 项目。如果从A 项目中直接抽取这些

类的源代码并加以修改,虽然可以满足B 项目的需要,但现在却需要维护两套功能类似的类代码,加大了管理的成本。在这种情况下,选择从A 项目的类中用继承的方法派生出新类用在B 项目中是一个可选的方案,既满足了新项目的需要,又避免了大量的重复代码与双倍的代码维护成本。

“水果(Fruit)”是基类(base class)或父类(parent class)或超类(super class),“苹果(Apple)”是子类(child class),IS_A 关系:基类拥有的特性,子类一定有,因此,可以把子类看成是一种“特殊”的基类。扩充(Extends)关系:子类拥有父类所没有的功能。“继承”关系有时又称为“派生”关系,“B 继承自A”,可以说为“B 派生自A”,或反过来说,“A 派生出B”。

class Animal

{

}

class Lion : Animal

{

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面向对象