引言--面向对象程序设计概述.ppt
《引言--面向对象程序设计概述.ppt》由会员分享,可在线阅读,更多相关《引言--面向对象程序设计概述.ppt(48页珍藏版)》请在三一文库上搜索。
1、面向对象C+程序设计,徐 建 南京理工大学计算机学院,主要内容,面向对象程序设计概述 类和对象 构造函数与析构函数 继承和派生类 类的其他特性 运算符重载 输入输出流,课时安排,理论学习40学时上机实验8学时 课外上机实验8学时,面向对象程序设计概述,面向对象和面向对象程序设计 面向对象程序设计的基本概念 面向对象软件的重要特性,一、面向对象和面向对象程序设计,什麽是面向对象 对象(object) 任何可以被感觉到的事物。 面向(oriented) 直接面对,以对象为中心。 面向对象(Object Oriented) 直接面对你能感觉到的任何事物。 面向对象编程(Object Oriented
2、 Programming)直接面对软件所要模拟的客观世界中的事物,将它们直接映射到软件系统的解空间中,成为组成软件的对象。,面向对象VS.面向过程程序设计,面向过程程序设计,设计程序步骤: 根据实际问题的要求和对其进行分析,找出解决问题的方法和步骤(即设计算法)。 为了在计算机上具体实现出算法,需要为该种算法选择或构造适当的数据结构,通过对数据的操纵过程体现算法的思想。也就是说,程序是在数据的某种特定表示方式和结构的基础上对抽象算法的具体描述。 设计程序的结构为: 数据处理过程中,采用自顶向下、分而治之的方法,将整个程序按功能分为几个可独立编程的子过程模块,每个子模块完成指定的子任务,主过程通
3、过调用各子过程来完成全部处理工作。,例如,一个学校管理软件中可以包含如下的数据结构和操作: typedef struct student typedef struct teacher char name10; char name10; long num; double salary; int age; int age; char sex; char sex; student; teacher; void enroll(student* ptr) void raise(teacher* ptr) . ptr-num+; ptr-salary += 100; ,void print(student
4、* ptr) void print(teacher* ptr) . main() . student Zhang; / 定义学生数据模块 teacher Li; / 定义教师数据模块 enroll( / 操作与被操作数据匹配 . ,优点: 自顶向下、逐步求精的结构化设计原则,该设计方法力求算法描述准确; 对每一子过程模块容易进行程序正确性证明。 缺点: 该设计方法本质是面向“过程”的,而“过程” 又是不稳定和多变的,因此不能直接反映人求解问题的思路; 数据与操作的分离,容易产生数据的失配操作、不易提高程序的重用性、维护和扩展困难。 程序代码可重用性差; 维护程序的一致性困难。,面向过程程序设计
5、的特点,面向对象程序设计(Object Oriented Programming) 吸取结构化程序设计的一切优点,又考虑了所模拟的现实世界与程序解空间的直接映射关系; 采用数据抽象和信息隐藏技术使得数据和(施加于数据的)操作成为不可分割的整体; 程序由类定义、类实例(对象)和对象之间的动态联系组成; 程序的重用性好、易于维护和扩展 较好地解决了软件复杂性控制和生产率的提高。,面向对象VS.面向过程程序设计,用面向对象的设计方法实现前例的功能: class student / 类定义 / 属性 char name10; long num; int age; char sex; / 方法 publ
6、ic: void enroll() . ; friend ostream,class teacher / 类定义 / 属性 char name10; double salary; int age; char sex; / 方法 public: void raise() . ; friend ostream,main() . / 类实例 对象 student Zhang; teacher Li; / 对象方法调用 Zhang.enroll(); Li.raise(); cout Zhang; cout Li; . ,面向对象程序设计的方法,建立模型 模型是对事物特征和变化规律的一种抽象,是对客体
7、认识的深化。,被模拟的系统:,感性具体,模拟系统:,面向对象程序设计语言,Simula 引入了数据抽象概念以及类和继承机制。 Ada,Modula-2 等语言在它的基础上发展起来。 Smalltalk 第一个真正的面向对象的程序设计语言。该语言引入和完善了类、方法、实例等概念,应用了继承和动态链接机制,是一种完全面向对象的程序设计语言。,面向对象程序设计语言,LISP 语言家族 是一种以表处理表达为特色的人工智能程序设计语言。70 年代以来,在 LISP 的基础上开发出许多 LISP 家族的面向对象程序设计语言,例如: Flavors LOOPS(Lisp Object Oriented Pr
8、ogramming System) CommonLOOPS CommonObjects CLOS(Common Lisp Object System),面向对象程序设计语言,C+ C+ 是在 C 程序设计语言的基础上进行扩充,增加了相应的面向对象机制的混合型面向对象的程序设计语言。 由于 C+ 既具有完备的面向对象机制,又保持了 C 的灵活高效和对 C 程序的兼容性,是目前使用最广泛的面向对象程序设计语言之一。常用的 C+ 语言版本有: MS-C+、Turbo C+、Boland C+、Visual C+ 和GCC 等。,面向对象程序设计语言,Java 由 Sun Microsystems 公
9、司开发的一种完全面向对象的程序设计语言。 Java 编译器生成的是一种称为“字节码”的中间码文件,该文件的执行是由运行在不同计算机平台上的 Java 虚拟机 JVM(Java Virtual Machine)完成的,所以 Java 语言非常适合网络编程,实现程序的跨平台、跨介质运行的需要。,面向对象程序设计语言,C# C# 是由 Microsoft 公司近年来开发一种直接用于在 Microsoft Net 平台上更易于编译产生网络程序(字节码程序)的面向对象程序设计语言。该语言具有 Java 程序的跨介质运行机制,在一定程度上保持了 C 的风格和高效率,并融入了 VB 语言开发程序的友好性和方
10、便性,但目前还不能实现跨平台运行,二、面向对象程序设计的基本概念,对象(object) 消息(message) 类(class),对象, 对象的定义 在客观世界中,对象是任何可以感觉到的事物。 对象可以是自然事物(人、动物、植物等),组织结构(学校、院系、班级等),(人类的)物质产品(房屋、汽车、计算机等)和信息产品(文章、乐曲、规则、计划等)等。 对象可小可大,可简单可复杂;复杂对象可以由简单对象构成。无论对象的类型、大小、复杂程度多么不同,都具有共同的特性:,对象, 对象的定义 无论对象的类型、大小、复杂程度多么不同,都具有共同的特性: 有一个特定的名字以区别于其他对象; 有一组属性,用来
11、描述对象的静态特性; 有一组行为,用来描述对象的动态特性; 对象的操作可分为两类: 对内提供自身服务的行为 对外为其他对象提供服务的行为。,对象,(2) 对象的状态 在客观世界中,对象的状态是同类型的不同实例独立存在的依据,也是这些对象的行为表现差异的基础。 在面向对象的软件中,对象的状态是同类对象属性的静态类型和这些属性的动态值的总和。一个对象一旦创建,由静态类型所描述的属性存储区域就被分配确定,描述不同对象差异的属性动态值可以在对象创建的同时被确定,并由对象的相应行为修改。,对象,(3)对象的特性 模块独立性: 对象的行为仅由对象本身的状态确定,而对象的状态和行为的操作细节被封闭在模块内;
12、 动态连接性: 对象(模块)之间通过消息机制,实现不同对象行为的动态连接,完成确定任务; 易维护性: 维护工作被最大程度地限定在对对象的状态和行为的确定规则(对象的定义类)的维护。,消息(message),(1)消息的定义 消息是一个对象请求另一个对象执行其某种行为操作(也称为方法)的规格说明。这种规格说明总是由消息的接收者(提供方法的对象)、消息所请求的方法(方法名)和实现方法的必要参数组成的。所以在面向对象的程序中,消息通常的表示形式是:对象名.方法。,消息(message),(2)消息的性质 同一对象可以接受不同形式的多个消息,并产生不同的响应; 相同形式的消息可以发送给不同接收对象,所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 引言 面向 对象 程序设计 概述
链接地址:https://www.31doc.com/p-2852896.html