第1章面向对象基础知识[1]

上传人:陈** 文档编号:253061480 上传时间:2024-11-28 格式:PPT 页数:35 大小:73KB
返回 下载 相关 举报
第1章面向对象基础知识[1]_第1页
第1页 / 共35页
第1章面向对象基础知识[1]_第2页
第2页 / 共35页
第1章面向对象基础知识[1]_第3页
第3页 / 共35页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,C+面向对象程序设计,Object-Oriented Programming in C+,1,课程概述 (Course Outline),第一章 面向对象的基础知识,第二章 C+编程基础,第三章 C+的函数,第四章 对象和类 ( Object & Class ),第五章 类的应用,第六章 运算符的重载 (Overloading Operators),2,第七章 继承 (Inheritance),第八章 虚函数与多态性 (Virtual function & Polymorphism),第九章 C+的I/O (Input & Output),第十章 模板和异常 (Template & Exception),第十一章 标准模板库 (STL Standard Template Library),第十二章 面向对象程序设计技术,3,第一章面向对象的基本知识,面向对象程序设计诞生的原因,1.1,面向过程语言,1.2,面向对象的程序设计,2.,面向对象语言的特征,2.1,封装,2.2,继承,2.3,多态,3.C+,和,C,面向对象的软件开发,UML,建模语言,4,概述,本章将介绍面向对象程序设计(Object-Oriented Programming, OOP) 诞生的原因,为什么需要OOP,有什么它可以做到,而传统的编程语言如C, Pascal, BASIC 却做不到的? OOP 需要遵循什么原则?C+和C语言之间有什么联系?为什么需要用UML?,5,1. 面向对象程序设计诞生的原因,1.1 面向过程语言 (Procedural Language),C, Pascal, FORTRAN, 以及其它的语言,都被称为面向过程的语言,也就是说,这些语言中的每一个语句都在告诉计算机该做什么:接受输入,求和,除以3,显示输出等等。,当程序变大时,一个面向过程的程序被划分成了多个函数,每个函数都有明确的定义及实现。,6,把大量的函数聚集到一起就形成一个模块(module) ,这样的模块常常是一个文件。,把程序划分为函数和模块是结构化程序设计(structured programming) 的基石,7,1.1.1 面向过程设计的问题,随着项目复杂度的增加,面向过程设计也显得使项目越来越难以维护,管理。,原因是什么?有两个相互关联的问题:,函数能够不受限制地访问全局变量,函数和数据之间缺乏联系。,8,1.1.2 面向过程范例,在大型程序中,有非常多的函数和全局数据,它们之间有巨大的潜在连接。大量的连接会导致程序结构很难概念化,而且使得程序很难修改。,全局变量,全局变量,全局变量,函数,函数,函数,函数,9,1.2 面向对象的程序设计,与结构化程序设计方法相比,更符合人类认识现实世界的思维方式,已成为程序设计的主流方向,10,1.2.1,现实世界建模,对象,现实世界中,万物皆对象,都具有各自的,属性,(名词),对外界都呈现各自的,行为,(动词),属性,: 对于人,眼睛的颜色,职位是属性。,行为,:行为是现实世界中的对象对于某些刺激的反应。,11,程序中,一切都是对象,都具有标识,(identity),属性和行为(,behavior),现实世界中的属性相当于程序中的数据,它们都有一个特定的值。,行为就如同一个函数,通过函数(function) 实现他的行为, 即为了做某事调用一个函数,然后该函数再执行请求。,12,例:,钟表,数据(属性),int,Hour,; int,Minute,; int,Second,;,方法(行为),SetTime(),;,ShowTime(),;,13,例:,学生,数据(属性),String,name,; int ID; int Eng; int,Math,;,方法(行为),统计成绩,getEng(), getMath(),getTotal(),14,类,将属性及行为相同或相似的对象归为一,类。,类可以看成是对象的抽象,代表了此类对象所具有的共有属性和行为。,可以将现实生活中的对象经过抽象,映射为程序中的对象。对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(Class)。,对象是类的具体实例。,15,2. 面向对象语言的特征(C+),对象(Object),:当采用一门面向对象语言来解决程序设计问题时,不用再问如何将问题划分为函数,而要问如何将它划分为对象。,牢记:用对象而不是函数来思考问题,。,类(Class),:类是许多相似对象的共同性描述,它如同一个计划或蓝图,指出这个类的对象包含了哪些数据和函数。但定义类并不会创建任何对象。对象常常也被称为类的实例(Instance)。,16,面向对象程序设计涉及的主要概念,封装,继承,多态,17,封装(encapsulation):将数据和它的函数装进一个实体,这就是面向对象方法一个重要特征。,对象通过操作接口(函数)与外部发生联系,而内部的具体细节则被隐藏起来,对外是不可见的。,2.1,封装 (encapsulation),18,对象的函数在C+中叫做成员函数(member function), 它提供了访问该对象内数据的唯一途径。也就是说,如果想读取一个对象内的数据项(data member), 就必须调用该对象的成员函数。这样可以避免数据被意外改变。,19,面向对象范例,典型的C+程序由许多对象组成,它们通过调用相互的成员函数来进行通信。,数据,数据,数据,成员函数,成员函数,成员函数,成员函数,成员函数,成员函数,对象1,对象2,对象3,20,对象的类比 (公司示例),销售数据,人力资源数据,财务数据,销售经理,秘书,人力资源经理,人力资源部职员,首席财务官,财务助理,销售部门,人力资源部,财务部,21,类的基本思想引出了继承的概念。日常生活中将类分为子类的例子:交通工具类可分为轿车,卡车,公共汽车等等。,除了与类的其他成员所共有的特征,每个子类还有它自己的特征。,2.2,继承,(Inheritance),22,基类和派生类:在C+中,原始的类称为基类(Base Class), 由它继承的类定义时共享它的特征,也可加入自己的特征,这些类被称为派生类(Derived Class)。,特征A,特征B,特征A,特征B,特征C,特征A,特征B,特征D,特征E,特征A,特征B,特征F,23,Type,Brand,Type,Brand,Horn,Type,Brand,Engine,Airbag,Type,Brand,Seats,Vehicle,Bicycle,MotoVehicle,Airplane,24,可重用性,(reusability) 继承的概念为可重用性的思想提供了重要的扩展。程序员可以使用已存在的类,生成派生类,自由地增加其他的特征和功能。 可轻松重用已存在的软件是OOP的一个主要优点。,25,2.3多态,多态,(Polymorphism) 指相同的行为被不同的对象来执行时,可以有不同的实现方式,而用哪一种方式取决于它所操作的内容。,26,3. C+和C,C+的由来:C是一种面向过程的语言,AT&T Bell Lab的Bjarne Strustrump 在C语言的基础上进行了修改和扩充,开发出支持面向对象的程序设计的C+.,C+和C的关系:C+是C语言的一个超集,几乎所有C中正确的语句在C+中也同样是正确的,反之却不成立。,27,4. 面向对象的软件开发,1、面向对象分析(Object oriented analysis, OOA),系统分析员和用户一起,对用户的需求做出分析和明确的描述。从客观存在的事物和它们之间的关系归纳出有关的对象及其关系,并将具有相同属性和行为的对象用一个类来表示。,2、面向对象设计,(,Object oriented design,OOD),根据需求,对每一部分分别进行具体的设计,首先是类的设计,可能包括多个层次(利用继承和派生机制),然后提出程序设计的思路和方法。,28,3、,面向对象编程(Object oriented programming, OOP),选用适当的开发工具进行编程,4、面向对象测试(Object oriented test, OOT),对程序进行严格的测试。,5、面向对象维护(Object oriented software maintenance, OOSM),29,UML (Unified Modeling Language) 是为计算机程序建模的一门图形化“语言”。“建模”就是创建某事物的简化表示,如,蓝图就是房子的模型。UML就是在考虑实际的代码细节之前,用图示将程序结构在很高的层次上表示出来。,5、UML 建模语言,30,5.1 UML的起源,UML基于三门独立的建模语言:,一门由Grady Boosh 在Rational Software 创建。,一门由James Rumbaugh 在General Electric 创建。,一门由Ivar Jacobson 在Ericson建立。,最后, James Rumbaugh 和 Ivar Jacobson 加入了Rational Software,他们在20世纪90年代末统一了各自的建模语言,提出了统一建模语言(UML)。接着,OMG(Object Management Group)采用了这个结果。,31,5.2 为何需要UML?,对于大型的程序,仅仅看源代码很难搞清楚其各部分之间的联系。UML 正是提供了一种方法去知道程序概貌,并能描述程序的主要部分和它们是如何一起工作的。,除了帮助理解一个程序是如何工作外,它能帮助进行程序的初始设计。实际上,从规范文档,测试到维护,UML在软件开发的所有阶段都是有用的。,32,5.3 UML的图集,UML 最重要的部分是9种类图。如:,类图(Class Diagram)表示类之间的关系。,对象图(Object Diagram)表示特定对象之间的关系。,时序图(Sequence Diagram)表示对象之间在时间上的通信。,协作图(Collaboration Diagram)按照时间和空间顺序表示对象之间的交互和它们之间的关系。,33,状态图(State Diagram)表示对象的状态和响应。,用例图(User Case Diagram)表示程序用户如何与程序交互。,活动图(Activity Diagram)表示系统元素的活动。,组件图(Component Diagram)表示实现系统的元素的组织。,配置图(Deployment Diagram)表示环境的配置,34,UML 的建模机制,UML有两套建模机制:静态建模机制和动态建模机制。,静态建模机制包括用例图,类图,对象,包,组件图和配置图。,动态建模机制包括消息,状态图,时序图,协作图,活动图。,35,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!