欢迎来到天天文库
浏览记录
ID:50318908
大小:725.00 KB
页数:137页
时间:2020-03-08
《C++程序设计案例教程 教学课件 作者 刘玉山第6章 类.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章:封装学习目标1)了解拷贝构造函数的用法。2)理解类和对象的定义。3)理解对象的生存期的概念。4)掌握构造函数和析构函数的用法。5)掌握静态成员、常成员和友元的用法第六章:封装6.0封装概念6.1类的定义6.2对象6.3构造函数和析构函数6.4静态成员6.5常成员6.6友元6.7类的组合6.8对象的生存期6.0封装概念在人们的日常生活中,经常可以看到这样的现象,比如我们把文具(钢笔、铅笔、橡皮擦等)放在文具盒里面。当用这些文具的时候,直接从文具盒里面取出即可。而不是把文具随便的放在某些地方,
2、用的时候不方便获取。像这样的把文具放在一个盒子里面便于以后使用的方便的存放文具的方式我们在编程语言中给它取了一个名字叫封装。6.0封装概念文具盒={存放文具、取出文具}+{材料、颜色、形状}文具盒={操作}+{属性}从使用者的角度出发,运用我们编程的语言来说,封装就是对现实中一些事物的属性和动作的抽象概括。使使用者在实际应用中使用和交流起来比较方便。6.0封装概念假如你书包里面有一个文具盒,在这里我们称抽象的、泛指的文具盒为类(class),而具体的实实在在的文具盒我们称为对象(object)。在
3、C++编程语言中,为了表达人们对客观事物的描述,就引入了类的概念。类就是对现实中人们所关心的客观事物的抽象描述,它不但包含人们所关心的事物的各种属性的描述,而且也包含着对这些属性的操作和其它的动作。所以这也C++编程语言面向对象特征的体现。6.0封装概念什么是面向对象?运用对象的观点来分析问题和解决问题的思维方式或方法。从这里我们也可以看出,面向对象就是从使用者的角度出发,运用整体的,封装的概念来考虑问题和分析问题。现实中我们就是面向对象的执行者。比如上面的例子中所提到的文具盒,就是这样的一个例子
4、。首先文具盒是我们所关心的对象。其次我们提到它的时候并没有显式的说明它具有存放文具、取出文具的操作,什么材料做的和什么形状等,而只是用三个字文具盒代替了。最后谈论的双方也都能理解谈论的对象--文具盒到底是什么。以后我们在编程的时候,也要从用户的角度出发,运用面向对象的概念来分析问题和解决问题。6.1类的定义类是一种复杂的数据类型,它将不同的类型的数据以及对这些数据的操作封装在一起的,形成一个集合体。任务1.设计一个类对学生信息进行描述(1)任务描述在学校里,老师经常需要对学生的基本情况进行统计或其
5、他管理。如若进行手工操作,面对为数不多或少量的学生时可以的。但对于众多的学生,同时要进行对每个学生多项目进行管理时,编制一个软件实现对学生的信息进行管理是十分必要的。这里我们希望设计的软件只具有封装学生编号、学生姓名等功能,并显示该学生的信息,对其他的功能以后再加以增强。(2)任务分析1)作为接受任务的你来说,你应该从班主任的角度出发来考虑问题。2)这里考虑的对象是学生,其涉及的内容为学生的个人信息等,而不是其它的信息。3)需要选择实现的工具和方法,包括实现该任务所用到的工具,当然这里选择C++编
6、程语言。方法就是根据要求运用类来实现。(2)任务分析对学生的信息的进一步的细化。这里我们通过与班主任的进一步沟通知道,必须要有的内容为:学生编号和姓名。其它没有提到的为暂时可要可不要的内容,比如说学生的家庭住址,联系方式等。原则上可要可不要的内容,建议编程的时候不要。这样可以避免一些不必要的麻烦。既然知道了学生的信息只包括学生编号和姓名。接下来就应该为这些属性选择存储方式了。(2)任务分析针对编号,从班主任那里了解到他只需要在班内辨别出每个同学即可。所以可以选择unsignedint。而对于姓名,
7、一般来说姓名长度是不定,所以选择string来存储学生的名字。(2)任务分析当然对这些学生的属性的存取需要一些操作,在C++中这些操作映射为一些函数。比如对学生编号的赋值操作和提取操作,对应的函数为:voidSetCode(unsignedint);intGetCode();对学生姓名的赋值和提取操作,对应的函数为:voidSetName(string&n);stringGetName();(2)任务分析这里为显示学生信息,我们设计一个show()函数来实现。(3)任务实现见程序Student61
8、_1.h(4)要点总结1)这是对学生类的定义。2)此类的定义从形式上分为两部分。一部分为定义的头。如第5行,通过关键字class指出了当前类的名字为Student;另一部分为定义的体。从第5行的“{”开始到第26行的“}”结束。(4)要点总结3)类中包含的内容从功能上分为两部分,一部分是类中的数据成员,如第6行到第8行,是对学生信息的描述;另一部分为类中的成员函数,如第9行到第26行,是对学生信息的操作。不过类中所含有的成员函数既可放于类定义体的花括号之中如第10行到第12行对学生
此文档下载收益归作者所有