(1)面向过程与面向对象的比较

面向过程程序设计方法(C语言)

分析出要解决所需要的步骤,然后用函数把各步骤逐个实现,运行时依次调用各个函数即可。

  程序 = 算法 + 数据结构

面向对象程序设计方法(C++语言)

把问题分解成各个对象,描述各个对象的属性和行为,通过对象的相互作用来解决问题。

  对象 = 算法 + 数据结构
  程序 = 对象s + 消息
(消息的作用就是对对象的控制)

(2)面向对象程序设计方法的介绍

一般步骤

定义类 –> 创建对象 –> 向对象发送消息,使对象行动起来

-------------------------------------
面向对象的基本概念     面向对象系统的特性
-------------------------------------基类         |      抽象性
------------------------------------- 对象         |      封装性
-------------------------------------   消息         |      继承性
-------------------------------------方法         |      多态性
------------------------------------

面向对象程序设计是程序设计的新思维,它既吸收了结构化程序设计的一切优点,又考虑了现实世界与面向对象空间的映射关系,它所追求的目标是将现实世界问题的求解尽可能简单化。

面向对象程序设计将数据以及对数据的操作放在一起,作为一个相互依存、不可分割的整体来处理,它采用了数据抽象和信息隐藏技术。它将对象及对对象的操作抽象成一种新的数据类型——类,并且考虑不同对象之间的联系和对象所在类的重用性。

面向对象程序设计优于传统的结构化程序设计,其优越性表现在,它有希望解决软件工程的两个主要的问题——软件复杂性控制和软件生产率的提高,此外它还符合人类的思维习惯,能够自然地表现现实世界的实体和问题,它对软件开发过程具有很重要的意义。

面向对象的基本概念: 基类对象消息方法

对象

对象是现实世界中一个实际存在的事物,它是有形的,也可以是无形的或无法整体触及的抽象事件。对象是构成世界的一个独立单位,它具有自己的静态特征(静态特征是可以用某种数据来描述)和动态特征(动态特征即对象所表现的行为或对象所具有的功能)。一个对象可以包含多个属性(属性是一组数据结构的集合,表示对象的一种状态,对象的状态只供对象自身使用,用来描述静态特性)和多个服务(服务是用来描述对象动态特征或行为的一个操作序列,是对象一组功能的体现,包括自操作和它操作。自操作是对象对其内部数据属性进行的操作,它操作是对其他对象进行的操作),对象的属性值只能由这个对象的服务存取和修改。对象是其自身所具有的状态特征及可以对这些状态施加的操作结合在一起所构成的独立实体。

对象具有如下的特性:

  (1)具有唯一标识名,可以区别于其他对象;

  (2)具有一个状态,由与其相关联的属性值集合所表征;

  (3)具有一组操作方法即服务,每个操作决定对象的一种行为;

  (4)一个对象的成员仍可以是一个对象;

  (5)模块独立性;

  (6)动态连接性;

  (7)易维护性;

类(基类)

在面向对象系统中,并不是将各个具体的对象都进行描述,而是忽略其非本质的特性,找出其共性,将对象划分成不同的类,这一过程称为抽象过程。类是对象的抽象及描述,是具有共同属性和操作的多个对象的相似特性的统一描述体。在类的描述中,每个类要有一个名字标识,用以标识一组对象的共同特征。类的每个对象都是该类的实例。类提供了完整的解决特定问题的能力,因为类描述了数据结构(对象属性)、算法(服务方法)和外部接口(消息协议),是一种用户自定义的数据类型。

消息

消息是面向对象系统中实现对象间的通信和请求任务的操作,是要求某个对象执行其中某个功能操作的规格说明。发送消息的对象称为发送者,接受消息的对象称为接收者。对象间的联系,只能通过消息来进行。对象在接收到消息时才被激活。

消息具有三个性质:

(1)同一对象可接收不同形式的多个消息,产生不同的响应;

(2)相同形式的消息可以发送给不同对象,所做出的响应可以是截然不同的;

(3)消息的发送可以不考虑具体的接收者,对象可以响应消息,也可以对消息不予理会,对消息的响应并不是必需的。

方法

在面向对象程序设计中,要求某一对象完成某一操作时,就向对象发送一个相应的消息,当对象接收到发向它的消息时,就调用有关的方法,执行相应的操作。方法就是对象所能执行的操作。方法包括界面(界面就是消息的模式,它给出了方法的调用协议)和方法体(方法体则是实现这种操作的一系列计算步骤,也就是一段程序)两部分;消息和方法的关系是:对象根据接收到的消息,调用相应的方法;反过来,有了方法,对象才能响应相应的消息。

面向对象系统特性:抽象性封装性继承性多态性

抽象性

程序是由一组对象组成的。程序员可以将一组对象的共同特征进一步抽象出来,进而形成“类”的概念。抽象是一种从一般观点看待事物的方法,它要求程序员集中于事物的本质特征,而不是具体细节或具体实现。

封装性

数据封装就是指一组数据和与这组数据有关的操作集合组装在一起,形成一个能动的实体,也就是对象。数据封装就是给数据提供了与外界联系的标准接口,无论是谁,只有通过这些接口并使用规范的方式,才能访问这些数据。

继承性

从已有的对象类型出发建立一种新的对象类型,使它继承原对象的特点和功能,这种思想是面向对象设计方法的主要贡献。继承是对许多问题中分层特性的一种自然描述,因而也是类的具体化和实现重用的一种手段,它所表达的就是一种不同类之间的继承关系。它使得某类对象可以继承另外一类对象的特征和能力。继承所具有的作用有两个方面:一方面可以减少冗余代码,另一方面可以通过协调性减少接口和界面

从继承源上划分继承可以分为单继承(子类对单个直接父类的继承称为单一继承)和多继承(子类多于一个直接父类的继承称为多重继承)。父类也称为基类或超类,子类也称为派生类。

从继承内容上可以分为取代继承包含继承受限继承特化继承

多态性

不同的对象接收到相同的消息时产生完全不同的行为的现象称为多态性。C++语言支持两种多态性,即编译时的多态性(通过重载函数实现)和运行时的多态性(通过虚函数实现)。使用多态性可以大大提高人们解决复杂问题的能力。

面向对象程序设计能支持的软件开发策略有:

  (1)编写可重用代码;(2)编写可维护代码;(3)共享代码;(4)精减已有代码;

面向对象的软件开发:

1、面向对象分析(object oriented analysis , OOA)

  2、面向对象设计(object oriented design , OOD)

  3、面向对象编程(object oriented programming , OOP)

  4、面向对象测试(object oriented test , OOT)

  5、面向对象维护(object oriented soft maintenance , OOSM)

转载于:https://www.cnblogs.com/SYU-HJ/p/7859193.html

面向对象程序设计方法概述相关推荐

  1. 面向对象程序设计方法RPG小游戏实例

    第四章面向对象程序设计方法 一.实验目的 1.掌握面向对象程序设计的方法.明确类与对象的概念,掌握面向对象设计七大原则: 2.掌握常见的设计模式以及类图的描述 二.七大原则总结 (1)单一职责原则:类 ...

  2. 浅谈面向对象程序设计方法

    目录 定义 基本思想 早期发展 背景 审视问题域的视角 抽象级别 封装体 可重用性 特征 对象唯一性 抽象性 继承性 多态性(多形性) 开发方法 Booch方法 Coad方法 OMT方法 UML(Un ...

  3. 什么是面向对象程序设计方法

    一.什么是面向对象程序设计? 1.所有的东西都是对象:对象保存着数据,且可对它自身进行操作: 2.可从要解决的问题上提出概念性的组件,然后再程序中将其表达为一个对象,(头.身体.手.腿组成一个人): ...

  4. 面向对象开发方法概述

    小结: 1.面向对象的软件开发有什么优点? (1)与人类习惯的思维方法一致 (2)稳定性好. (3)可重用性好 (4)较易开发大型软件 (5)可维护性好 2.在软件系统中,为什么说一个独立的不对外提供 ...

  5. Java面向对象编程 第一章 面向对象开发方法概述

    一.软件开发经历的生命周期: ①软件分析 ②软件设计 ③软件编码 ④ 软件测试 ⑤ 软件部署 ⑥软件维护 二.为了提高软件开发效率,降低软件开发成本,一个优良的软件系统应该具备以下特点: ① 可重用性 ...

  6. OOP_面向对象程序设计概述

    李际军老师"面向对象程序设计"课程第一课笔记整理 面向对象程序设计概述 20世纪90年代以来面向对象程序设计(Object Oriented Programming, 简称OOP) ...

  7. C++面向对象(一):面向对象程序设计概述

    C++面向对象:面向对象程序设计概述 会有点长,不过读过就全学会喽!!!!!! 会有点长,不过读过就全学会喽!!!!!! 会有点长,不过读过就全学会喽!!!!!! 1.什么是面向对象程序设计 面向对象 ...

  8. 《MATLAB面向对象程序设计》

    <MATLAB面向对象程序设计> 基本信息 作者: 苗志宏    马金强 出版社:电子工业出版社 ISBN:9787121233449 上架时间:2014-6-18 出版日期:2014 年 ...

  9. 面向对象程序设计(JAVA)复习笔记(上)

    文章目录 一.JAVA语言基础知识 变量和常量 标准输入输出 数组 数组的声明 数组的创建 数组元素的初始化 数组的引用 多维数组 二.类和对象的基本概念 面对对象程序设计方法概述 类的声明 对象的声 ...

最新文章

  1. 【廖雪峰python入门笔记】raw 字符串和多行字符串表示
  2. python 时间戳 字符串_python time模块 字符串 时间戳互转
  3. python编程语言是什么-Python是一种什么样的编程语言?解释?编译?汇编?机械?...
  4. 虚拟化概念和KVM简述
  5. mysql主外键引用关系,关于mysql:数据主/外键关系
  6. Y15BeTa蜂鸣器-演奏版-简化版
  7. HANA中SQL之truncate 、delete与drop区别
  8. Atitit.Gui控件and面板----db数据库区----- .数据库比较同步工具 vOa
  9. 《数字图像处理 第三版》(冈萨雷斯)——第六章 彩色图像处理
  10. 《SAP从入门到精通》——导读
  11. 避障车(L293D电机驱动)
  12. 如何成为一名优秀的关卡设计师?
  13. 平安保险IT员工收入揭秘
  14. iPhone手机蓝牙找不到AirPods耳机的解决方法
  15. MySQL创建触发器的时候报1419错误( 1419 - You do not have the SUPER privilege and binary logging is enabled )
  16. 索引原理-索引数据结构
  17. 2021年江苏高考成绩查询时间,2021年江苏高考成绩什么时候出来 公布时间
  18. QUARTZ 简单介绍
  19. 大疆网上测评题库_大疆科技题目
  20. 阿德莱德计算机科学学士好吗,阿德莱德大学哪个专业好

热门文章

  1. 管廊人员定位解决方案,人员安全保护伞
  2. 秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)及Java获得
  3. 计算机数字小,直观:打开和关闭笔记本计算机的数字小键盘
  4. 职教云python程序设计答案_智慧职教云课堂APPPython程序设计题目答案
  5. 如何查看网页端所占的内存大小
  6. 干货 | 代理模式Mock平台在携程的应用
  7. 杀毒软件-火绒(freeware)
  8. 《专业四》第一单元练习手册
  9. 体虚分为气虚、血虚、阴虚、阳虚四种类型
  10. 防采集 - 最看不起采集,一点技术含量都没有!