第四章_类与对象.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 类与对象 主讲人:杨红菊 本章目的 掌握面向对象的基本概念; 掌握类与对象的定义与使用; 正确使用构造函数、析构函数以及类成员函数与数据成员 主要内容 1 类的概念 2 类的定义 3 类成员的访问控制 4 类的成员函数 5 对象 对比面向过程与面向对象的程序设计方法的不同。 描述圆Circle。 面向过程的方法: 函数1:求圆的面积 函数2:求圆的周长 其它函数 主函数: 定义圆的半径; 输入圆的半径; 调用求面积函数; 调用求周长函数; 输出 …… 面向对象的方法: 类Circle { 私有数据成员: 圆的半径 公有成员函数: 求圆的面积 求圆的周长 显示圆的半径 设定圆的半径 …… }; 主函数 定义类的对象; 通过对象调用相应的公有成员函数; 类的概念 面向过程的结构化程序设计中,程序的模块由函数构成的,每个函数用于完成特定的功能。数据与对数据的操作分离。 面向对象的程序设计中,程序的模块由类构成,类是对逻辑上相关的函数与数据的封装,它是对问题的抽象描述。 所谓抽象是指对具体问题进行概括,抽出一类对象的公共属性并加以描述的过程。抽象的过程,也就是对问题进行分析和认知的过程。 对一个问题的抽象包括两个方面: 数据抽象(描述某类对象的属性或状态) 行为抽象(描述的某类对象的共同行为或功能特征) 了解了类的概念,那么如何定义一个类呢? 2 类的定义 类的定义分为 声明部分(干什么) 实现部分(怎么干) 2 类的定义 注意:在类中可以只声明函数的原型,函数的实现部分可以在类外定义。 2 类的定义 class 类名称 { public: 外部接口 protected: 保护性成员 private: 私有成员 }; 3 类成员的访问控制 通过设置成员的访问控制属性来实现类成员的访问权限。 访问控制属性包含以下三种: 公有类型(public) 保护类型(protected) 私有类型(private) public定义了类的外部接口。 private只能被本类的成员函数访问,private成员一般在类外不直接进行操作,而是通过外部接口(公有函数)来操作类中的数据成员。 protected成员与private成员性质相似,其差别在于继承过程中对产生的新类的影响不同。 注意: 如果private成员紧接着类的名称,则关键字private可以省略。 一般情况下,一个类的数据成员应声明为私有成员。 书写时通常习惯将公有类型放在最前面,这样便于阅读,因为它们是外部访问时所需了解的。 4 类的成员函数 成员函数描述的是类的行为; 成员函数是程序算法的实现部分; 成员函数是对封装的数据进行操作的方法。 类的成员函数的实现 成员函数的实现分两种: 类内实现(内联成员函数) 类外实现(作用域标识符::,指明所属类) 成员函数在类外实现时分两部分:类中的函数的原型声明+类外的函数的具体实现。 对象的声明 对象的声明: 类名 对象名; 例如 Clock myClock; Circle a; 人 张三; 对象操作 如何访问对象的成员呢? myClock.SetTime(8,30,30); myClock.ShowTime(); myClock.hour; 分析: 类的定义是对问题进行了高度的抽象和封装化的描述; 问题的解决需要通过类的实例------对象之间的消息传递完成。主函数的功能就是声明对象并传递消息。 练习: 1定义并实现Circle和Triangle类,用主程序测试结果。 2 比较结构类型定义和类类型定义。 谢谢! * * 山西大学计算机信息技术学院 例2:描述时钟类 时钟类 { 数据抽象: 时,分,秒 行为抽象: 显示时间 设置时间 } 例3:描述人类 人类 { 数据抽象: 姓名,年龄,性别…… 行为抽象: 吃饭,走路,工作,学习…… } 2 类的定义 例4:时钟类定义 class Clock { private: int Hour, Minute, Second; public: void SetTime(int NewH, int NewM, int NewS); void ShowTime(); }; void Clock::SetTime(int NewH, int NewM, int NewS) { Hour=NewH; Minute=NewM;

文档评论(0)

yyh892289 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档