书签 分享 收藏 举报 版权申诉 / 26
上传文档赚钱

类型类与对象课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3282281
  • 上传时间:2022-08-16
  • 格式:PPT
  • 页数:26
  • 大小:388.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《类与对象课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    对象 课件
    资源描述:

    1、C+语言程序设计普通高等教育“十一五”国家级规划教材国家精品课教材 尹云飞博士 硕导第1页,共26页。第第4章章 类与对象类与对象l面向对象的思想lOOP的基本特点l类概念和声明l对象l构造函数l析构函数l内联成员函数l拷贝构造函数l类的组合l结构体与联合体l深度探索第2页,共26页。抽象抽象l抽象是指对具体问题(对象)进行概括,抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的抽出一类对象的公共性质并加以描述的过程。过程。l例如,例如,p99面向对象程序设计的基本特点第3页,共26页。封装封装l封装是将抽象的到的数据和行为(或功封装是将抽象的到的数据和行为(或功能)相结合

    2、,形成一个有机的整体,也能)相结合,形成一个有机的整体,也就是将数据与操作数据的函数代码进行就是将数据与操作数据的函数代码进行有机的结合,形成类,其中的数据和函有机的结合,形成类,其中的数据和函数都是类的成员。数都是类的成员。l例如,例如,p99面向对象程序设计的基本特点第4页,共26页。继承继承lC+语言中提供了类的继承机制,允许语言中提供了类的继承机制,允许程序员在保持原有类特性的基础上,进程序员在保持原有类特性的基础上,进行更具体、更详细的说明。行更具体、更详细的说明。面向对象程序设计的基本特点第5页,共26页。多态多态l多态是指一段程序能够处理多种类型对多态是指一段程序能够处理多种类型

    3、对象的能力。象的能力。l在在C+语言中,这种多态性可以通过强语言中,这种多态性可以通过强制多态、重载多态、参数化多态(即模制多态、重载多态、参数化多态(即模板)、包含多态(即虚函数)来体现。板)、包含多态(即虚函数)来体现。面向对象程序设计的基本特点第6页,共26页。类的定义类的定义l类定义格式:类定义格式:class 类名称类名称public:外部接口外部接口protected:保护型成员保护型成员private:私有成员私有成员类和对象在面向对象程序设计中,程序模块是由类构成在面向对象程序设计中,程序模块是由类构成的。类是对逻辑上相关的函数与数据的封装,的。类是对逻辑上相关的函数与数据的封

    4、装,它是对问题的抽象描述。它是对问题的抽象描述。第7页,共26页。类成员的访问控制类成员的访问控制l共有类型,共有类型,public:定义了类的外部接口:定义了类的外部接口l私有类型,私有类型,private:只能被本类的成员函数访问,:只能被本类的成员函数访问,来自外部的任何访问都是非法的来自外部的任何访问都是非法的l保护类型,保护类型,protected:和:和private相似,但可以被相似,但可以被继承继承l例如例如p103类和对象第8页,共26页。对象对象l格式:格式:类名类名 对象名对象名;例如:例如:Clock myClock;l对象所占据的内存空间只是用于存放对象所占据的内存空

    5、间只是用于存放数据成员,函数成员不在每一个对象数据成员,函数成员不在每一个对象中存储副本,每个函数的代码在内存中存储副本,每个函数的代码在内存中只占据一份空间中只占据一份空间类和对象第9页,共26页。类的成员函数类的成员函数l成员函数的实现成员函数的实现返回值类型返回值类型 类名类名:函数成员名函数成员名(参数表参数表)函数体函数体l例如例如p104类和对象第10页,共26页。类的成员函数类的成员函数l成员函数调用中的目的对象:使用成员函数调用中的目的对象:使用.操作符指出操作符指出调用所针对的对象,称为本次调用的目的对象调用所针对的对象,称为本次调用的目的对象l带默认形参值的成员函数:例如带

    6、默认形参值的成员函数:例如p105l内联成员函数,例如内联成员函数,例如p105l例例4-1,p106类和对象第11页,共26页。构造函数构造函数l构造函数的作用就是在对象被创建时利用特定的构造函数的作用就是在对象被创建时利用特定的值构造对象,将对象初始化为一个特定的状态。值构造对象,将对象初始化为一个特定的状态。l构造函数在对象被创建的时候自动被调用构造函数在对象被创建的时候自动被调用l例如例如p108构造函数和析构函数第12页,共26页。复制构造函数复制构造函数l又称拷贝构造函数,它是一种特殊的构造函数,具有一又称拷贝构造函数,它是一种特殊的构造函数,具有一般构造函数的所有特性,其形参是本

    7、类的对象的引用。般构造函数的所有特性,其形参是本类的对象的引用。l拷贝构造函数的作用是使一个已经存在的对象去初始化同类拷贝构造函数的作用是使一个已经存在的对象去初始化同类的一个新对象的一个新对象l若果程序员没有定义类的拷贝构造函数,系统就会在必要的若果程序员没有定义类的拷贝构造函数,系统就会在必要的时候自动生成一个隐含的拷贝构造函数时候自动生成一个隐含的拷贝构造函数构造函数和析构函数第13页,共26页。复制构造函数复制构造函数l例如例如p110l拷贝构造函数在三种情况下被调用拷贝构造函数在三种情况下被调用l例例4-2,p112构造函数和析构函数:当用类的一个对象去初始化该类的另一个对当用类的一

    8、个对象去初始化该类的另一个对象时象时如果函数的形参是类的对象,调用函数时,进行如果函数的形参是类的对象,调用函数时,进行形参和实参结合时形参和实参结合时如果函数的返回值是类的对象,函数执行完成如果函数的返回值是类的对象,函数执行完成返回调用者时返回调用者时第14页,共26页。析构函数析构函数l析构函数用来完成对象被删除前的一析构函数用来完成对象被删除前的一些清理工作。析构函数是在对象的生些清理工作。析构函数是在对象的生存期即将结束的时刻被自动调用的。存期即将结束的时刻被自动调用的。l析构函数没有形参、是析构函数没有形参、是public成员成员l例如例如p114构造函数和析构函数第15页,共26

    9、页。组合组合l类的组合就是一个类内嵌其他类的对象作为成员,它们之类的组合就是一个类内嵌其他类的对象作为成员,它们之间的关系是一种包含与被包含的关系。间的关系是一种包含与被包含的关系。l当创建类的对象时,如果这个类具有内嵌对象成员,那当创建类的对象时,如果这个类具有内嵌对象成员,那么各个内嵌对象将首先被自动创建么各个内嵌对象将首先被自动创建l在创建对象时既要对本类的基本类型数据成员进行初始化在创建对象时既要对本类的基本类型数据成员进行初始化又要对内嵌对象成员进行初始化又要对内嵌对象成员进行初始化类的组合第16页,共26页。组合组合l组合类构造函数格式组合类构造函数格式类名类名:类名类名(形参表形

    10、参表):内嵌对象内嵌对象1(形参形参表表):内嵌对象内嵌对象2(形参表形参表).l例例4-4,p120类的组合第17页,共26页。前向引用声明前向引用声明l即引用一个尚未定义的类即引用一个尚未定义的类l例如例如p120-122类的组合第18页,共26页。UML简介简介lUML(Unified Modeling Language)统一建模语言是统一建模语言是OMG于于1997年推行的年推行的l2003年年6月,月,OGM通过了通过了UML2.0UML图形标识第19页,共26页。UML类图类图l类和对象:在类和对象:在UML中用一个三段的矩中用一个三段的矩形表示一个类,如图形表示一个类,如图4-4

    11、;用一个矩形;用一个矩形表示一个对象表示一个对象l几种图形标识:(几种图形标识:(1)依赖关系是一个)依赖关系是一个事物的变化可能会影响到使用它的另事物的变化可能会影响到使用它的另一个事物。图一个事物。图4-6,p126UML图形标识第20页,共26页。UML类图类图l几种图形标识:(几种图形标识:(2)关联关系是一个类的对象和)关联关系是一个类的对象和另一个类的对象之间相互作用的连接,例另一个类的对象之间相互作用的连接,例1对多。对多。图图4-7,p126l(3)包含关系是聚合和组合的总称。聚合是)包含关系是聚合和组合的总称。聚合是整体与部分关系,例如整体与部分关系,例如“包含包含”、“组成

    12、组成”;组合是部分与整体共存。图组合是部分与整体共存。图4-8,p127UML图形标识第21页,共26页。UML类图类图l几种图形标识:(几种图形标识:(4)继承关系使用三)继承关系使用三角形标识。例如图角形标识。例如图4-10,p128l注释:用带有折角的矩形表示,例注释:用带有折角的矩形表示,例4-6,p128UML图形标识第22页,共26页。结构体结构体l结构体是一种特殊形态的类是对结构体是一种特殊形态的类是对C语言结构体的兼容语言结构体的兼容l结构体与类具有不同的默认访问控制属性:在结结构体与类具有不同的默认访问控制属性:在结构体中对于未指定人和访问控制属性的成员其类构体中对于未指定人

    13、和访问控制属性的成员其类型为公有类型;而类则为私有类型型为公有类型;而类则为私有类型l全部是数据成员的结构可以被直接赋值,例全部是数据成员的结构可以被直接赋值,例4-7结构体和联合体第23页,共26页。联合体联合体l是指全部数据成员共享同一组内存单元是指全部数据成员共享同一组内存单元l例如例如p131l一般只用联合体来存储私有的数据,不为他定义一般只用联合体来存储私有的数据,不为他定义函数成员函数成员l联合体可以不声明名称,其成员的名字可以联合体可以不声明名称,其成员的名字可以直接访问例如直接访问例如132,例,例4-8结构体和联合体:联合体的各个对象成员不能有自定义的构造函数、联合体的各个对

    14、象成员不能有自定义的构造函数、析构函数、重载赋值运算符析构函数、重载赋值运算符联合体不能继承、不支持包含多态性联合体不能继承、不支持包含多态性第24页,共26页。用构造函数定义类型转换用构造函数定义类型转换l构造函数可以实现类型转换构造函数可以实现类型转换,例如例如Line(Point(1),Point(4).getLen();l也可以写成也可以写成Line(1,4).getLen();这是隐式转换这是隐式转换l只允许显示执行类型转换:通过在构造函数只允许显示执行类型转换:通过在构造函数前面加前面加explicit实现实现深度探索第25页,共26页。对象作为函数参数和返回值对象作为函数参数和返回值l对象作为函数参数会调用拷贝构造函数对象作为函数参数会调用拷贝构造函数l不同的编译器会对这种调用进行优化以减少临时对象不同的编译器会对这种调用进行优化以减少临时对象生成生成l对象作为函数的返回值也会调用拷贝构造函数对象作为函数的返回值也会调用拷贝构造函数l不同的编译器也会对生成的临时对象进行优化不同的编译器也会对生成的临时对象进行优化深度探索第26页,共26页。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:类与对象课件.ppt
    链接地址:https://www.163wenku.com/p-3282281.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库