9章类和对象.pptVIP

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9章类和对象

第9章 类和对象 了解 面向对象程序设计基本原理 理解 抽象、封装、继承和多态的含义 深刻理解 类和对象的概念 掌握 利用类来解决具体问题的方法 两种程序设计思想: 面向过程的程序设计 重点:以功能为中心,如何实现细节,采用函数来描述 操作,数据与函数是分开的。 形式:主模块+若干子模块(main()+子函数) 特点:自顶向下逐步求精——功能分解 缺点:效率低,程序的可重用性差,数据结构一旦发生 变化,函数就必须重写。 oop基本特点: (1)抽象:对具体对象(问题)进行概括,抽出这一类对象的 公共性质并加以描述的过程。 先注意问题的本质及描述,其次是实现过程或细节。 数据抽象+代码抽象,如电视机、学生 数据抽象:描述某类对象的属性或状态(对象相互 区别的物理量) 代码抽象:描述某类对象的共有的行为特征或具有 的功能。 抽象的实现:通过类的声明。 思考:为什么要引入…? 为什么要引入数组? 太多的变量(全班同学的C++成绩) 为什么要引入函数? 结构化程序设计、代码重用 为什么要引入指针? 参数传递、动态分配内存 为什么要引入结构体? 复合数据结构,不同数据类型的聚合在一起 为什么要引入类 类是创建对象的模板,它包含着所创建对象的状态描述和方法的定义 类是指具有相同操作功能和相同数据格式的对象的集合 例如水果类、人类、电视机类、整数类、实数类 多个不同类型的变量或数组+处理它们的函数 约等于 类 引入类的原因: 复合数据结构(例如一个人的多种属性描述) 数据与代码的整合(以便更高级的代码复用) 类(Class)--数据类型 类是具有相同属性和相同的方法的对象的集合,它是一种既包含数据又包含函数的抽象数据类型。 类是将一类对象和其他对象区别开来的一组描述。 类是对象集合的抽象,对象是类的一个实例。 类的种类 用struct关键字声明的类 用union关键字声明的类 用class关键字声明的类 类的定义 class 类名 { private: //私有成员 数据成员或成员函数表; public: //公有成员(外部接口) 数据成员或成员函数表; protected: //保护成员 数据成员或成员函数表; … … }; 类的构成 类是由数据成员和成员函数构成 数据成员(Data Member),即类的属性; 成员函数(Member Function),即类的方法 1、成员函数直接访问同类中的数据成员 2、类的对象访问其数据成员或成员函数需使用运算符“.” 3、禁止在类外直接访问一个对象中的私有成员 4、同类对象之间可以整体赋值 5、对象用作函数的参数时属于赋值调用; 6、函数可以返回一个对象。 ( 4、5、6 利用拷贝构造函数实现) 例:人事资料输入输出 例:简单的日期类 构造函数与析构函数 构造函数—由于类的封装性,不能象普通变量一样 初始化。 构造函数的作用是在对象被创建时使用特定的值构 造对象,或者说将对象初始化为一个特定的状态。 在对象创建时由系统自动调用。 如果程序中未声明,则系统自动产生一个缺省形式 的构造函数。 允许为内联函数、重载函数、带缺省形参值的函数 格式: 类名 (参数表) { 函数体 } 注意事项: 构造函数名必须与类名相同 构造函数没有返回值 其功能是对对象进行初始化,一般由一系列赋值 语句构成 由系统自动调用 析构函数 格式为: ~类名() { 函数体 } 或 类名::~类名() { 函数体 } 注意事项: 函数名与类名相同,只是在前边加“~”符号 析构函数不得返回任何值 析构函数不得带有任何参数 其功能是释放对象成员所占用的存储空间,一般由一系列的delete组成 由系统自动调用 为类Person增加构造函数和析构函数 对象与指针 指向对象的指针 类名 *指针变量名表; 例: Person person1(“Zhang3”,19,’f’); Person *ptr=Person1; ptr-ShowMe(); 动态存储 名字指针=new 名字(名字初始化值); delete 名字指针; 例: Person *p=new Person;

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档