第八章-类和对象(3).ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

5类的封装性和信息隐蔽

5.1公用接口与私有实现的分离类中被操作的数据是私有的,实现的细节对用户是隐蔽的,这种实现称为私有实现(privateimplementation)。这种“类的公用接口与私有实现的分离”形成了信息隐蔽。软件工程的一个最基本的原则就是将接口与实现分离,信息隐蔽是软件工程中一个非常重要的概念。它的好处在于:(1)如果想修改或扩充类的功能,只需修改本类中有关的数据成员和与它有关的成员函数,程序中类外的部分可以不必修改。(2)如果在编译时发现类中的数据读写有错,不必检查整个程序,只需检查本类中访问这些数据的少数成员函数。5.2类声明和成员函数定义的分离为了实现信息隐蔽,对类成员函数的定义一般不放在头文件中,而另外放在一个文件中。//student.cpp//在此文件中进行函数的定义#includeiostream#include“student.h”//不要漏写此行,否则编译通不过voidStudent::display()//在类外定义display类函数{cout“num:”numendl; cout“name:”nameendl; cout“sex:”sexendl;}5.3面向对象程序设计中的几个名词类的成员函数在面向对象程序理论中被称为“方法”(method),“方法”是指对数据的操作。一个“方法”对应一种操作。显然,只有被声明为公用的方法(成员函数)才能被对象外界所激活。外界是通过发“消息”来激活有关方法的。所谓“消息”,其实就是一个命令,由程序语句来实现。stud.display();就是向对象stud发出的一个“消息”,通知它执行其中的display“方法”(即display函数)。上面这个语句涉及3个术语:对象、方法和消息。stud是对象,display()是方法,语句“stud.display();”是消息。6类和对象的简单应用举例例:最简单的例子。#includeiostreamusingnamespacestd;classTime//定义Time类{public://数据成员为公用的inthour;intminute;intsec;};intmain(){Timet1;//定义t1为Time类对象cint1.hour;//输入设定的时间cint1.minute;cint1.sec; coutt1.hour“:”t1.minute“:”t1.secendl;return0;}注意:(1)在引用数据成员hour,minute,sec时不要忘记在前面指定对象名。(2)不要错写为类名,如写成Time.hour,Time.minute,Time.sec是不对的。因为类是一种抽象的数据类型,并不是一个实体,也不占存储空间,而对象是实际存在的实体,是占存储空间的,其数据成员是有值的,可以被引用的。(3)如果删去主函数的3个输入语句,即不向这些数据成员赋值,则它们的值是不可预知的。例:引用多个对象的成员。(1)程序(a)#includeiostreamusingnamespacestd;classTime{public:inthour;intminute;intsec;};intmain(){ Timet1;//定义对象t1cint1.hour;//向t1的数据成员输入数据cint1.minute;cint1.sec;coutt1.hour“:”t1.minute“:”t1.secendl;Timet2;//定义对象t2cint2.hour;//向t2的数据成员输入数据cint2.minute;cint2.sec;coutt2.hour“:”t2.minute“:”t2.secendl;return0;}(2)程序(b)#includeiostreamusingnamespacestd;classTime{public:inthour;intminute;intsec;};intmain

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档