类和对象类与对象的概念类的声明和对象的定_第1页
类和对象类与对象的概念类的声明和对象的定_第2页
类和对象类与对象的概念类的声明和对象的定_第3页
类和对象类与对象的概念类的声明和对象的定_第4页
类和对象类与对象的概念类的声明和对象的定_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章 类和对象8.1 类与对象的概念 8.2 类的声明和对象的定义8.3 类的成员函数8.4 对象成员的引用8.5 类和对象的简单应用示例8.6 类的封装性和信息隐藏本学期的教学特点与学习方法教学特点课堂讲重点、主线。要求记笔记,记重点学会把握讲课的重点是一种通用能力。课堂示例与课本的例子不同扩大学习容量。课堂示例会在实验报告中以实验内容提供,以便同学们复习。课前课后必须认真看课本内容,消化课堂教学的理论内容。实验任务与课堂教学同步安排,但不是简单的验证课堂教学内容。实验任务的问题注重概念、引导思考,需要在认真阅读课本后完成。书面作业注重设计能力的训练。学习方法课堂上听懂,注意作笔记;以教材

2、、笔记为参考,完成实验任务和书面作业;课后对照教材、笔记、实验报告、书面作业进行复习。面向过程与面向对象:思想方法的不同第一学期的程序设计:注重程序设计步骤面向过程:考虑问题从程序设计运行的“步骤”入手细节的丰富与多样性,使“设计”成为“艺术”面向对象的程序设计:思想方法的进步从整体到细节,从一般到具体思想方法更贴近人的思维方式观察一个新事物的过程我们的学校环境:教学区、生活区、休闲区教学区:教学室、实验室、体育运动设施生活区:宿舍、食堂、店铺、马路组织:学院-分院-专业-班级人员:老师、同学本次课重点介绍C+的一种新的数据类型类与对象“类”类型定义的语法规范“对象”的定义与使用的语法规范类与

3、对象的物理意义以类和对象为基础的程序设计示例例:“时钟”对象的C+描述时钟的基本特征时间属性的数量描述时(hour)分(minute)秒(second)我们可以对时钟的操作设置时间:调整时间(对hour,minute,second的改变)读取时间:获取时间属性的具体数值( 输出hour,minute,second )某种时钟产品有多个-不同的时钟对象,而这一种时钟产品就称为一种时钟的类型-类int hour;int minute;int second;9:23:42用C+语言的“类”模型描述“时钟”class Timeprivate:/定义时钟的基本属性相当于机械钟的齿轮int hour, m

4、inute, second;public:/定义时钟的基本功能void SetTime(int h, int m, int s)/设置时间hour=h;minute=m;second=s;void GetTime(int &h, int &m, int &s)/读取时间h=hour; m=minute; s=second;从外界对时钟设置时间:比如时钟的设置按钮外界获取时钟的时间:比如时钟的表盘或屏幕class Timeprivate: int hour, minute, second;public:void SetTime(int h, int m, int s)hour=h;minute=

5、m;second=s;void GetTime(int &h, int &m, int &s)h=hour; m=minute; s=second;在类里包含了数据成员和操作数据成员的成员函数,实现了把数据和操作封装在一起。成员访问限定符,在定义体开始处如不指定,则默认为私有private。从时钟的描述形式看类的声明方法关键字类Time类型名成员访问限定符,以下成员为公有成员public数据成员函数成员类体结束私有成员,只有类内部定义的函数可以访问。公有成员,类内部、外部定义的函数都可以调用。对象的定义类的定义只是定义了一种类型,说明有这样一种事物。要创建这个种类的具体事物,需要定义对象。注意

6、:类定义创建了新的数据类型,只是类型说明,还没有定义存储空间(变量),并没有创建实际的对象。创建对象的语法:指定存储空间 Time t1 ,t2;class Timeprivate: int hour, minute, second;public: void SetTime(int h, int m, int s) hour=h;minute=m;second=s; void GetTime(int &h, int &m, int &s) h=hour; m=minute; s=second; ;类名对象名对象的使用使用对象的方式有三种:整个对象对象的数据成员对象的函数成员;对象成员的使用要受

7、到访问控制的影响,需要特别注意。使用对象的数据成员只能通过间接方式(调整时钟的时间、读出时钟的时间)Time t1, t2;t1.SetTime(9,23,42);int hh,mm,ss;t1.Gettime(hh,mm,ss);couthh“:”mm“:”ss;coutendl;给对象t1中的私有数据成员hour,minute,second赋值(间接)获取对象t1中的私有数据成员hour,minute,second的数据(间接)通过调用类的公有成员函数访问类中的私有成员。思考:为什么不能直接对数据成员赋值和输出?实验:一个这样的程序有什么问题?void main()Time t1, t2;

8、t1.hour=9; t1.minute=23; t1.second=42;coutt1.hour“:”t1.minute“:”t1.second;coutxyz;t1.SetTime(x, y, z);int hh,mm,ss;t1.GetTime(hh,mm,ss);couthh“:”mm“:”ssxyz;t1.SetTime(x, y, z);t1.GetTime(hh,mm,ss);cout“Now time is :”hh“:”mm“:”ssendl;coutyorn;while (yorn=y | yorn=Y);cout“Have a nice day !”23 | hour59

9、 | minute59 | second23 | hour59 | minute59 | secondxyz;t1.SetTime(x, y, z);t1.GetTime(hh,mm,ss);cout“Now time is :”hh“:”mm“:”ssendl;coutyorn;while (yorn=y | yorn=Y);cout“Have a nice day !”endl;简单应用举例例8.4,用类的方法进行设计,找出一组整数中的元素的最大值。计算器输出屏幕1592603in748outmax设想有一种计算器,能存储一组整数,且能找出其最大值 一种计算器类型:数据属性:可存储10个整

10、数的数组,记录最大值的变量;功能(方法或操作):接收数据、输出数据、查找最大值、输出最大数;class Array_max public:void set_value();void show_value();void max_value();void show_max(); private:int array10; int max;简单应用举例void Array_max:set_value() for (int k=0;karrayk;void Array_max:show_value() for (int k=0;k10;k+) coutarrayk ;void Array_max:sho

11、w_max() cout“max=”maxendl;void max_value() max=array0; /求最大数算法 for (int k=1;kmax) max=arrayk;class Array_max public:void set_value();void show_value(); void show_max();void max_value(); private:int array10; int max;至此只定义了这种“机器”的规格,还没有机器实体。下面要建立一个这种机器的“对象”(即实体),并写出“动作指令”,以完成功能。void main() Array_max arr; arr.set_value(); arr.show_value(); arr.max_value(); arr.show_max();小结:用类方法进行程序设计的步骤确定要解决的问题范围已知什么,求解什么建立与问题相关的类定义对象操作对象接收已知数据处理已知数据输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论