第1讲 面向对象概述1PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对栈的使用可由两种方式:
1.可以通过提供的函数来 实现
Stack st; int x; init(st); push(st,12); pop(st,x);
2.也可以直接在栈的数据 表示上直接进行 st.top = -1; st.top++; st.buffer[st.top] = 12; x = st.buffer[st.top]; st.top--;
bool push(Stack &s, int i) //进栈操作 { if (s.top == STACK_SIZE-1) { printf( “Stack is overflow.\n”);
return false; } else { s.top++;
s.buffer[s.top] = i; return true; } }
二.面向对象程序设计方法
(OOP,Object-Oriented Programming)
① 面向对象程序设计是一种以对象为基础, 以事件或消息来驱动对象执行处理的程序设计 技术。
②将数据及对数据的操作放在一起,作为相互 依存、不可分割的整体来考虑,它采用数据抽 象和信息隐藏技术,将对象和对对象的操作抽 象成一种新的数据类型─ 类。
{ printf( “Stack is overflow.\n”); return false;
} else { top++;
buffer[top] = i; return true; } }
bool pop(int &i);
面向对象语言
出发点: 更直接地描述客观世界中存在的事物(对 象)以及它们之间的关系。
特点: 是高级语言。 将客观事物看作具有属性和行为的对象。 通过抽象找出同一类对象的共同属性和 行为,形成类。 通过类的继承与多态实现代码重用
优点:
使程序能够比较直接地反映问题域 的本来面目,软件开发人员能够利 用人类认识事物所采用的一般思维 方法来进行软件开发。
bool pop(Stack &s, int &i) //出栈操作 {
if (s.top == -1) { printf(“Stack is empty.\n”); return false; } else { i = s.buffer[s.top]; s.top--; return true; } }
③这种方法集抽象性、封装性、继承性和多态 性于一体,易于实现模块化、可重用、易维护、 易扩充等功能。
优点:
程序模块间的关系更为简单,程序模块的独立 性、数据的安全性就有了良好的保障。
通过继承与多态性,可以大大提高程序的可重 用性,使得软件的开发和维护都更为方便。
结构化程序设计的方法是把程序看作是工 作在数据上的一系列过程或函数的集合。 程序的定律是:
2) 面向对象方案
#include <iostream.h> #define STACK_SIZE 100 class Stack //定义stack类,将数据和操作放在一起 { private:
int top; int buffer[STACK_SIZE]; public: Stack() { top = -1; } //构造函数,对栈进行初始化 bool push(int i); //进栈函数 { if (top == STACK_SIZE-1)
程序=(算法)+(数据结构)
面向对象方法把程序看作是互相协作而又彼 此独立的对象的集合。对象间通过发送消息 而相互作用。 程序的定律是:
对象=(算法+数据结构) 程序=(对象+对象+……)
实例:栈是一种由若干个按线性次序排列的 元素所构成的复合数据,对栈能实施两种操 作:进栈(增加一个元素)和退栈(删除一 个元素),并且这两个操作必须在栈的同一 端(栈顶)进行。后进先出(LIFO)是栈的 一个重要性质。
1.2程序设计方法的发展历程
一.面向过程的结构化程序设计方法
20世纪60年代诞生、七八十年代广泛使用的 程序设计方法,语言工具有:PASCAL、C 等。
设计思路:自顶向下,逐步求精;程序结构 按功能划分为若干个基本模块,这些模块形 成一个树型结构;各模块间的关系尽可能简 单,在功能上相对独立;每一模块内部均是 由顺序、选择、循环三种基本结构组成;其 模块化实现的具体方法是使用子程序。
商用数据处理 BASIC、Pascal、C 面向对象语言如:Simula、Eiffel、源自文库++
机器语言和汇编语言
由计算机硬件系统可以识别的二进制指令 组成的语言称为机器语言。
汇编语言将机器指令映射为一些可以被人 读懂的助记符,如ADD、SUB等。
高级语言
高级语言屏蔽了机器的细节,提高了语 言的抽象层次,程序中可以采用具有一 定含义的数据命名和容易理解的执行语 句。这使得在书写程序时可以联系到程 序所描述的具体事物。
1) 结构化方案
#include <iostream.h> #define STACK_SIZE 100 struct Stack //栈的结构体 { int top; int buffer[STACK_SIZE]; };
void init(Stack &s) //对栈初始化的函数 { s.top = -1; }
第一章 面向对象概述
• 计算机程序语言的发展 • 程序设计方法发展历程 • 面向对象技术的基本概念 :
对象,类,消息和事件 • 面向对象技术的基本特征:
抽象性,封装性,继承性,多态性
1.1程序设计语言发展
计算机程序设计语言 ▪ 第一代:机器语言 ▪ 第二代:汇编语言 ▪ 第三代:高级语言
FORTRAN:科学计算、向量处理、并行处理 ALGOL:通用算法语言 COBOL( CommonBusiness-Oriented Language):
优点:
有效地将一个较复杂的程序系 统设计任务分解成许多易于控制 和处理的子任务,便于开发和维 护。
存在问题:
①是一种面向过程的程序设计方法,而“过程” 和“操作”又是不稳定和多变的。
②程序代码可重用性差。
③维护程序的一致性困难。数据和过程相互独 立。因此,程序员必须时刻注意需要处理的数 据格式。