面向对象编程技术1.ppt
《面向对象编程技术1.ppt》由会员分享,可在线阅读,更多相关《面向对象编程技术1.ppt(151页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象编程技术编号:21090015时间:周一,911节地点:研104周次:318周1授课教师:郝应光邮件地址:h_2课程考核及成绩构成l本课程的成绩由期末考试和平时作业2部分构成其中:期末考试卷面100分,占50%平时作业占50%3公共交流平台:email:passwd:dloop2010预期功能:上课的文档、课堂的例程、作业要求、沟通信息、通知和消息4主要内容l面向对象技术lC+语法概要(6)lMFC框架基础详解(15)lMFC文档/视图结构详解(9)l几个应用程序开发实例(6)lVisual C+应用程序设计(12)多线程程序设计(3)TCP/IP网络程序设计(3)动态连接库程序设计(
2、3)数据库程序设计(3)5第一部分第一部分 面向对象技面向对象技术术l面向对象概念面向对象概念lUMLUML6第二部分 C+语法概要类和对象静态数据成员及成员函数对象与指针操作符重载和友员继承多态性7第三部分 MFC框架基础Visual C+集成开发环境简介Windows操作系统下的应用程序(SDK、MFC)用Appwizard开发一个MFC程序事件处理、映射模式及滚动视图GDI、颜色及字体对话框及控件ActiveX及IE公用控件位图8第四部分 MFC文档视图结构菜单、键盘及命令处理工具栏及状态栏文档和视图分离SDI及MDI文档的读写打印及打印予览拆分窗口及多视图9第五部分 MFC程序设计的其
3、他方面多线程程序设计数据库程序设计动态连接库程序设计TCP/IP网络程序设计10主要参考书l面向对象建模与设计,Rumbaugh,电力出版社l面向对象分析与设计,Grady Booch,机械工业出版社lThinking in C+,Bruce EckellC+Primer,Stanley B Lippman,中国电力出版社lC+语言及其程序设计教程,张国峰,电子工业出版社lC+程序设计教程,钱能,清华大学出版社l深入浅出MFC,2Ed,侯俊杰(侯杰),松岗。lVisual C+技术内幕,Microsoft,北京希望电子出版社11主要网络资源12第一部分第一部分 面向对象技面向对象技术术13面向
4、过程思想问题域(Domain)以问题域的系统流程为中心分析Sub1Sub2Subn.各子流程实现-函数化Func1Func2Funcn.根据系统的流程组建软件,通过函数的调用实现14面向对象思想问题域(Domain)以问题域中的事物为中心思考问题Object1Object2Objectn.对象归类-抽象化Class1Class2Classn.类实例化:定义对象,构建系统,形成解决方案15面向对象的基本概念lCoad和Yourdon给出了一个定义:“面向对象=对象+类+继承+通信”。l如果一个软件系统是使用这样 4 个概念设计和实现的,则我们认为这个软件系统是面向对象的。16对象l对象是面向对象
5、开发模式的基本成份。l每个对象可用它本身的一组属性和它可以执行的一组操作来定义。l属性一般只能通过执行对象的操作来改变。l操作又称为方法或服务,它描述了对象执行的功能,若通过消息传递,还可以为其它对象使用。17消息(Message)l消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。l一个对象接收到消息则调用消息中指定的方法,并将形式参数与参数表中相应的值结合起来。18类类l类是一组具有相同数据结构和相同操作的对象的集合。l类的定义包括一组数据属性和在数据上的一组合法操作。l类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。19l在一个类
6、中,每个对象都是类的实例(Instance),它们都可使用类中提供的函数。l对象的状态则包含在它的实例变量,即实例的属性中。20继承(Inheritance)l继承是使用已存在的定义做为基础建立新定义的技术。l新类的定义是基础类所声明的数据和新类所增加的声明的组合。新类复用既存的定义,而不要求修改既存类。l既存类可当做基类来引用,则新类相应地可当做派生类来引用。21面向对象方法学l面向对象分析OOAl面向对象设计OODl面向对象实现OOP22面向对象技术回顾l面向对象技术是许多人历经多年研究积累的产物。类的概念,是面向对象的重要组成部分。Smalltalk,提出许多面向对象技术的核心概念,如:
7、消息和继承。Dijkstra的软件正确性理念,提出了用抽象层构造软件的观点。Ada语言,提出了一般性和包两个概念。C+语言,最广泛使用的面向对象的语言。Java语言,健壮的、可移植的、流行的面向对象语言。23UML的产生l1988年到1992年是面向对象方法学蓬勃发展的时期,人们从各自的经历和软件开发的经验提出了各种面向对象的开发方法,代表的有:Sally Shlaer 和 Steve Mellor以信息模型化方法作为基础,并为目标系统增设了状态模型和过程模型;Peter Coad 和 Ed Yourdon则在信息模型化、面向对象的程序设计语言和基于知识的系统的基础上,建立了他们的OOA和OO
8、D,主要工具是类与对象图、对象状态图和服务图;HP公司的Fusion开发方法。24lWirfs-Brock的职责驱动设计(Responsibility-Driven Design),也称类-职责-协作Class-Responsibility-Collaboration(CRC)cards,用类所承担的责任来描述系统,利用责任把封装的概念带到分析与设计活动中去;lGrady Booch在Rational软件公司开发Ada系统做了许多构件(Component),并以此由底向上构筑大型软件系统,即OOD方法;lJim Rumbaugh在通用电子(General Electric)领导一个研究小组,提
9、出了对象建模技术(OMT)方法,通过面向对象的三种模型:对象模型、动态模型和功能模型,从不同角度对系统进行描述;25lIvar Jacobson和他的 Objectory 公司开发了OOSE(Object Oriented Software Engineering)面向对象的软件工程,利用Use Cases来表达系统要求。l1994年任职于Rational公司的Grady Booch首先联合Jim Rumbaugh加盟Rational软件公司开始了统一OO方法学和工具的历程。以融合Booch和OMT方法的UML开发开始。1995年10月UML0.8发布。1995年秋,Ivar Jacobson
10、和他的 Objectory 公司加盟Rational,UML中加入了OOSE方法,使其有可能最集中地包容当今最适用的各种OO方法。1996年,UML0.9版本发布,1997年1月,UML1.0被提交给OMG组织,作为软件建模语言的候选,1997年11月7日,UML1.1正式被OMG组织采纳为业界标准。UML经历了1.2,1.3,1.4。26Jim RumbaughGrady BoochIvar Jacobson27为什么使用面向对象开发l有助于我们充分利用对象编程语言的能力。l有助于软件的复用和设计的复用l可以产生建立在稳定的中间形式上的系统,有助于系统的演化28lOOA和OOD是面向对象方法
11、学中重要的部分,UML是具体的方法lOOP涉及到具体的编程语言,C+l开发要使用合适的工具IDE:Visual C29第二部分 C+语法概要第一章 C+基础301.1 1.1 C+C+的起源和特点的起源和特点lC C语言语言19721972年年,AT&TAT&T设计设计l为为改进改进C C语言语言,“带类的带类的C”,1983C”,1983命名为命名为C+C+对对C C的类型系统改进和扩充的类型系统改进和扩充(更安全更安全)支持面向对象支持面向对象lC+C+保持与保持与C C兼容兼容(快速普及快速普及)lC+C+不是纯粹的面向对象的语言不是纯粹的面向对象的语言311.2 程序的编译过程321.
12、1.3 3 C+C+的词法记号的词法记号l关键字关键字l各种常量各种常量l操作符操作符l标识符标识符l分隔符分隔符331.1.4 4 C+C+程序的结构程序的结构34l注释注释l输入和输出输入和输出l函数函数l变量(对象)变量(对象)l符号常量符号常量l表达式表达式l语句语句351 1.5 5C+C+的基本数据类型的基本数据类型361 1.6 6常量常量l整数常量整数常量l浮点常量浮点常量l字符常量字符常量l字符串常量字符串常量l布尔常量布尔常量371 1.7 7对象声明对象声明l基本语法如下:数据类型 标识符1,标识符2,。标识符n;l初始化数据类型 标识符1(初始值1),标识符2(初始值2
13、),。标识符n(初始值n);数据类型 标识符1=初始值1,标识符2=初始值2,。标识符n=初始值n;l赋值I=10;381 1.8 8枚举类型枚举类型l定义:定义:通过枚举一个类型的值域来定义一个数据类通过枚举一个类型的值域来定义一个数据类型,值域是通过在枚举声明时所指定的一组型,值域是通过在枚举声明时所指定的一组文字量(又称枚举常量)指定的。文字量(又称枚举常量)指定的。l语法形式:语法形式:enumenum 标识符标识符 标识符标识符1 1,标识符,标识符2 2,标识符,标识符3 3,。标识符,。标识符n;n;391 1.9 9表达式表达式l表达式由操作数和操作符组成,操作符分:表达式由操
14、作数和操作符组成,操作符分:算术操作符算术操作符:+、-、*、/、%、+、-关系操作符关系操作符:、=、=、!=!=逻辑操作符逻辑操作符:&、|、!逗号表达式逗号表达式:?:?:sizeofsizeof操作符操作符:sizeofsizeof位操作符位操作符:&、|、赋值操作符赋值操作符:=401 1.1 10 0表达式中的类型强制表达式中的类型强制l隐含地从一种类型向另一种类型的值的隐含地从一种类型向另一种类型的值的映射。映射。l赋值类型强制赋值类型强制右边的表达式类型映射成左值的类型。右边的表达式类型映射成左值的类型。l强制类型转换强制类型转换static_cast(E)static_cas
15、t(E)T(E)T(E)(T)E(T)E41第第二二章章 C C+程序的基本程序的基本控制结控制结构构l顺序结构顺序结构表达式语句表达式语句空语句空语句块语句块语句l选择结构选择结构l循环结构循环结构422 2.1 1 选择结构选择结构lififlif-elseif-else及其嵌套及其嵌套lswitchcaseswitchcase432 2.2 2循环结构循环结构lwhilewhileldowhiledowhilelf foror44嵌套循环循环是可以嵌套的452 2.3 3辅助控制语句辅助控制语句lgotogotolbreakbreaklcontinuecontinue46第第三三章章 函
16、数函数473 3.1.1 函数的基本概念函数的基本概念l完成特定功能的一段代码完成特定功能的一段代码具有合法的名称具有合法的名称具有一定返回类型具有一定返回类型可以多次调用可以多次调用l基本形式:基本形式:返回类型返回类型 函数名(形式参数函数名(形式参数1 1,形式参数形式参数2 2,。,形式参数,。,形式参数n)n)函数体;函数体;483 3.2.2 参数的传递参数的传递l值调用值调用l地址调用地址调用l引用调用引用调用l参数的求值顺序参数的求值顺序493 3.3 3 重载重载l具有相同函数名,但其参数个数不同或参数类型不同的一组函数称为重载。503 3.4 4 带缺省参数值的函数带缺省参
17、数值的函数l函数声明中可以为一个或多个参数指定缺省参数值。具有缺省值的参数右边不能出现没有缺省值的参数。重载函数的参数具有缺省值时要注意。例:lvoid fun(int x,int y=0)lvoid fun(int x)51第四章 类和对象4.1类的结构lC+的类是对象的抽象数据成员。成员函数。lC+类的说明第二部分 C+语法概要52举例:4.14.1类的结构(外部说明)类的结构(外部说明)53l访问控制描述符public后声明的是公有数据成员和成员函数,可被任何程序单元引用。private后声明的是私有数据成员和成员函数,仅可被类内部引用。public和private出现的顺序和次数是任意
18、的。4.14.1类的结构(外部说明)类的结构(外部说明)54l类成员函数的实现4.14.1类的结构(内部实现)类的结构(内部实现)举例554.2类的实例化-对象的实现l一般语法:类标识符 对象标识符;l可以声明多个对象,对象之间代码共享,数据独立。l可使用对象名引用对象的公有成员函数。方法如下:对象名.成员函数名(参数列表);564.24.2类的实例化类的实例化-对象的实现对象的实现l成员函数所操作的数据成员是该类的某个对象的数据成员。57举例4.24.2类的实例化类的实例化-对象的实现对象的实现584.3构造函数和析构函数l构造函数的作用是在对象被创建时使用特定的值构造对象(初始化)。l析构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 编程 技术
限制150内