第1章面向对象基础知识课件.ppt

上传人:牧羊曲112 文档编号:1624559 上传时间:2022-12-11 格式:PPT 页数:35 大小:106.50KB
返回 下载 相关 举报
第1章面向对象基础知识课件.ppt_第1页
第1页 / 共35页
第1章面向对象基础知识课件.ppt_第2页
第2页 / 共35页
第1章面向对象基础知识课件.ppt_第3页
第3页 / 共35页
第1章面向对象基础知识课件.ppt_第4页
第4页 / 共35页
第1章面向对象基础知识课件.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《第1章面向对象基础知识课件.ppt》由会员分享,可在线阅读,更多相关《第1章面向对象基础知识课件.ppt(35页珍藏版)》请在三一办公上搜索。

1、1,C+面向对象程序设计,Object-Oriented Programming in C+,2,课程概述 (Course Outline),第一章 面向对象的基础知识第二章 C+编程基础第三章 C+的函数第四章 对象和类 ( Object & Class )第五章 类的应用第六章 运算符的重载 (Overloading Operators),3,第七章 继承 (Inheritance)第八章 虚函数与多态性 (Virtual function & Polymorphism)第九章 C+的I/O (Input & Output)第十章 模板和异常 (Template & Exception)第

2、十一章 标准模板库 (STL Standard Template Library)第十二章 面向对象程序设计技术,4,第一章面向对象的基本知识,面向对象程序设计诞生的原因1.1 面向过程语言 1.2面向对象的程序设计 2.面向对象语言的特征2.1 封装 2.2 继承2.3 多态3.C+和 C面向对象的软件开发UML 建模语言,5,概述,本章将介绍面向对象程序设计(Object-Oriented Programming, OOP) 诞生的原因,为什么需要OOP,有什么它可以做到,而传统的编程语言如C, Pascal, BASIC 却做不到的? OOP 需要遵循什么原则?C+和C语言之间有什么联系

3、?为什么需要用UML?,6,1. 面向对象程序设计诞生的原因,1.1 面向过程语言 (Procedural Language)C, Pascal, FORTRAN, 以及其它的语言,都被称为面向过程的语言,也就是说,这些语言中的每一个语句都在告诉计算机该做什么:接受输入,求和,除以3,显示输出等等。当程序变大时,一个面向过程的程序被划分成了多个函数,每个函数都有明确的定义及实现。,7,把大量的函数聚集到一起就形成一个模块(module) ,这样的模块常常是一个文件。把程序划分为函数和模块是结构化程序设计(structured programming) 的基石,8,1.1.1 面向过程设计的问题

4、,随着项目复杂度的增加,面向过程设计也显得使项目越来越难以维护,管理。原因是什么?有两个相互关联的问题:函数能够不受限制地访问全局变量函数和数据之间缺乏联系。,9,1.1.2 面向过程范例,在大型程序中,有非常多的函数和全局数据,它们之间有巨大的潜在连接。大量的连接会导致程序结构很难概念化,而且使得程序很难修改。,全局变量,全局变量,全局变量,函数,函数,函数,函数,10,1.2 面向对象的程序设计,与结构化程序设计方法相比,更符合人类认识现实世界的思维方式 已成为程序设计的主流方向,11,1.2.1 现实世界建模,对象现实世界中万物皆对象都具有各自的属性(名词),对外界都呈现各自的行为(动词

5、) 属性: 对于人,眼睛的颜色,职位是属性。行为:行为是现实世界中的对象对于某些刺激的反应。,12,程序中一切都是对象都具有标识 (identity), 属性和行为(behavior)现实世界中的属性相当于程序中的数据,它们都有一个特定的值。行为就如同一个函数,通过函数(function) 实现他的行为, 即为了做某事调用一个函数,然后该函数再执行请求。,13,例:钟表数据(属性)int Hour; int Minute; int Second;方法(行为)SetTime(); ShowTime();,14,例:学生数据(属性)String name; int ID; int Eng; int

6、 Math;方法(行为)统计成绩getEng(), getMath() getTotal(),15,类将属性及行为相同或相似的对象归为一类。类可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为。可以将现实生活中的对象经过抽象,映射为程序中的对象。对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(Class)。对象是类的具体实例。,16,2. 面向对象语言的特征(C+),对象(Object):当采用一门面向对象语言来解决程序设计问题时,不用再问如何将问题划分为函数,而要问如何将它划分为对象。牢记:用对象而不是函数来思考问题。 类(Class):类是许多相似对象的共同性描

7、述,它如同一个计划或蓝图,指出这个类的对象包含了哪些数据和函数。但定义类并不会创建任何对象。对象常常也被称为类的实例(Instance)。,17,面向对象程序设计涉及的主要概念封装继承多态,18,封装(encapsulation):将数据和它的函数装进一个实体,这就是面向对象方法一个重要特征。对象通过操作接口(函数)与外部发生联系,而内部的具体细节则被隐藏起来,对外是不可见的。,2.1 封装 (encapsulation),19,对象的函数在C+中叫做成员函数(member function), 它提供了访问该对象内数据的唯一途径。也就是说,如果想读取一个对象内的数据项(data member

8、), 就必须调用该对象的成员函数。这样可以避免数据被意外改变。,20,面向对象范例,典型的C+程序由许多对象组成,它们通过调用相互的成员函数来进行通信。,数据,数据,数据,成员函数,成员函数,成员函数,成员函数,成员函数,成员函数,对象1,对象2,对象3,21,对象的类比 (公司示例),销售数据,人力资源数据,财务数据,销售经理,秘书,人力资源经理,人力资源部职员,首席财务官,财务助理,销售部门,人力资源部,财务部,22,类的基本思想引出了继承的概念。日常生活中将类分为子类的例子:交通工具类可分为轿车,卡车,公共汽车等等。除了与类的其他成员所共有的特征,每个子类还有它自己的特征。,2.2 继承

9、(Inheritance),23,基类和派生类:在C+中,原始的类称为基类(Base Class), 由它继承的类定义时共享它的特征,也可加入自己的特征,这些类被称为派生类(Derived Class)。,特征A,特征B,特征A,特征B,特征C,特征A,特征B,特征D,特征E,特征A,特征B,特征F,24,Vehicle,Bicycle,MotoVehicle,Airplane,25,可重用性(reusability) 继承的概念为可重用性的思想提供了重要的扩展。程序员可以使用已存在的类,生成派生类,自由地增加其他的特征和功能。 可轻松重用已存在的软件是OOP的一个主要优点。,26,2.3多态

10、,多态(Polymorphism) 指相同的行为被不同的对象来执行时,可以有不同的实现方式,而用哪一种方式取决于它所操作的内容。,27,3. C+和C,C+的由来:C是一种面向过程的语言,AT&T Bell Lab的Bjarne Strustrump 在C语言的基础上进行了修改和扩充,开发出支持面向对象的程序设计的C+.C+和C的关系:C+是C语言的一个超集,几乎所有C中正确的语句在C+中也同样是正确的,反之却不成立。,28,4. 面向对象的软件开发,1、面向对象分析(Object oriented analysis, OOA)系统分析员和用户一起,对用户的需求做出分析和明确的描述。从客观存在

11、的事物和它们之间的关系归纳出有关的对象及其关系,并将具有相同属性和行为的对象用一个类来表示。2、面向对象设计(Object oriented design,OOD)根据需求,对每一部分分别进行具体的设计,首先是类的设计,可能包括多个层次(利用继承和派生机制),然后提出程序设计的思路和方法。,29,3、面向对象编程(Object oriented programming, OOP)选用适当的开发工具进行编程4、面向对象测试(Object oriented test, OOT)对程序进行严格的测试。5、面向对象维护(Object oriented software maintenance, OOS

12、M),30,UML (Unified Modeling Language) 是为计算机程序建模的一门图形化“语言”。“建模”就是创建某事物的简化表示,如,蓝图就是房子的模型。UML就是在考虑实际的代码细节之前,用图示将程序结构在很高的层次上表示出来。,5、UML 建模语言,31,5.1 UML的起源,UML基于三门独立的建模语言:一门由Grady Boosh 在Rational Software 创建。一门由James Rumbaugh 在General Electric 创建。一门由Ivar Jacobson 在Ericson建立。最后, James Rumbaugh 和 Ivar Jaco

13、bson 加入了Rational Software,他们在20世纪90年代末统一了各自的建模语言,提出了统一建模语言(UML)。接着,OMG(Object Management Group)采用了这个结果。,32,5.2 为何需要UML?,对于大型的程序,仅仅看源代码很难搞清楚其各部分之间的联系。UML 正是提供了一种方法去知道程序概貌,并能描述程序的主要部分和它们是如何一起工作的。除了帮助理解一个程序是如何工作外,它能帮助进行程序的初始设计。实际上,从规范文档,测试到维护,UML在软件开发的所有阶段都是有用的。,33,5.3 UML的图集,UML 最重要的部分是9种类图。如:类图(Class

14、 Diagram)表示类之间的关系。对象图(Object Diagram)表示特定对象之间的关系。时序图(Sequence Diagram)表示对象之间在时间上的通信。协作图(Collaboration Diagram)按照时间和空间顺序表示对象之间的交互和它们之间的关系。,34,状态图(State Diagram)表示对象的状态和响应。用例图(User Case Diagram)表示程序用户如何与程序交互。活动图(Activity Diagram)表示系统元素的活动。组件图(Component Diagram)表示实现系统的元素的组织。配置图(Deployment Diagram)表示环境的配置,35,UML 的建模机制UML有两套建模机制:静态建模机制和动态建模机制。静态建模机制包括用例图,类图,对象,包,组件图和配置图。动态建模机制包括消息,状态图,时序图,协作图,活动图。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号