什么是面向对象,什么是面向过程
面向对象:
把软件组织成一系列离散的,合并了数据结构和行为的对象.
类中的大部分数据,只能用本类的方法进行处理.
类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信.
程序流程是由用户在使用中决定的.
面向对象的四个方面:
1.标识
数据被量化成称之对象的离散的实体.每个对象都有它自己的内部标识.即使所有的属性都相同,两个对象也是有差别的.
2.分类
拥有相同数据结构(属性)和行为(操作)的对象被分组成一个类.
3.继承
多个类基于一种分层关系,共享类间的属性和操作(合称为特征)
4.多态
对于不同的类来说相同的操作会有不同的动作.
面向对象的基本概念:
1. 对象
把数据(属性)及数据的操作方式(方法)放在一起,作为一个相互依存的整体就是对象
2.对象的状态和行为
对象的状态,一个对象的数据值来描述他的状态
对象的操作,用于改变对象的状态,对象及其操作就是对象的行为
对象实现了数据和操作的结合,是数据和操作封装与对象的统一体中.
3.类
具有相同或相似性质的对象的抽象就是类.
因此,对象的抽象就是类,类的具体化就是对象,也可以说类的实例就是对象
类的状态,就是对象的状态的抽象,用数据结构类描述他的属性.
类的操作,就是对象的行为的抽象,用操作名实和实现该操作的方法来描述.
4.类的结构
通常有两种主要的结构关系,及一般---具体结构关系, 整体—部分结构关系.
一般—具体结构被称为分类关系,也可以说是”或”的关系.
整体—部分结构被称为组装关系,也可以说是”与”的关系
5.消息和方法
对象之间进行通信的结构被叫做消息.
在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行的某种操作的信息.
发送一条信息至少要包括说明接收消息的对象名,发送给该对象的消息名称(对象名,方法名).
一般还要对参数进行说明,参数是可以认识该消息的对象所知道的变量名,或是所有对象都知道的全局变量名
面向对象的特征:
1.对象唯一性
每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象.在对象的整个生命期中,他的标识都不改变,不同的对象不能有相同的标识
2.抽象性
抽象性是指将具有一致的数据类型(属性)和行为(操作)的对象抽象成类.一个类就是这样的一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容,任何类的划分都是主观的,但必须与具体的应用有关.
3.继承性
继承是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系.在定义和实现一个类的时候,可以在一个已经存在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容.
继承性是面向对象程序设计语言不同其他语言的最重要的特点,是其他语言没有的.
在类层次中,子类只能继承一个父类的数据结构和方法,则称为单重继承.
在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承.
多重继承, Java ,Vb,NET,均仅支持单继承,在使用C++多继承时,注意二义性.
继承性的作用
在软件开发中,类的继承性使所建立的软件具有开放性,可补充性,这是信息组织与分类的行之有效的方法,它简化了对象,类的创建工作量,增加了代码到可重用性.
采用继承性,提供了类的规范的等级结构.通过类的继承关系,使公共的特性能够共享,提高了软件的重用性.
4.多态性(多形性)
多态性是指相同的操作或函数,过程可作用于多种类型的对象上并获得不同的结果.
不同的对象,收到同一信息可以产生不同的结果,这种现象称之为多态性.
多态性允许每个对象以合适自身得方法去响应共同的信息.
多态性的作用
多态性增强了软件的灵活性和重用性.
面向对象的要素:
1.抽象
抽象是指强调实体的本质,内在的属性.
抽象的作用:
使用抽象可以尽可能避免过早考虑的一些细节.
2.封装性(隐藏性)
封装性是保证软件部件具有优良的模块性的基础.
封装的作用:
对象是封装的最基本的单位.
封装防止了程序互相依赖性而带来的变动影响.
面向对象的封装比传统语言的封装跟清晰,给为有力.
3.共享性
面向对象技术在不同级别上促进了共享
同一类的共享.同一类的对象是有着相同的数据结构.这些对象之间是结构,行为特征的共享关系.
在同一应用中共享.在同一应用的类层次结构中,存在继承关系的各相似子类中,存在数据结构和行为的继承,是各相似子类共享共同的数据结构和行为.使用继承来实现代码的共享,这也是面向对象的主要优点之一.
在不同应用中共享.面向对象不仅允许在同一应用中共享信息,而且为未来目标的可重用设计准备了条件.通过类库这种机制和结构来实现不同应用中的信息共享.
面向过程:
自顶向下顺序执行,逐步求精;
其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;
各模块之间的关系尽可能简单,在功能上相对独立(解耦合).
每一模块内部均是由顺序,选择和循环三种基本结构组成;
其模块化实现的具体方法是使用子程序.程序流程在写程序时就已决定.
转至:https://baike.so.com/doc/3145517-3315043.html