面向对象程序设计语言C++第2版 教学课件 作者 陈文宇面向对象程序设计语言C++ - 第3章 类与对象.ppt

面向对象程序设计语言C++第2版 教学课件 作者 陈文宇面向对象程序设计语言C++ - 第3章 类与对象.ppt

ID:50216206

大小:675.50 KB

页数:35页

时间:2020-03-10

面向对象程序设计语言C++第2版 教学课件 作者 陈文宇面向对象程序设计语言C++ - 第3章 类与对象.ppt_第1页
面向对象程序设计语言C++第2版 教学课件 作者 陈文宇面向对象程序设计语言C++ - 第3章 类与对象.ppt_第2页
面向对象程序设计语言C++第2版 教学课件 作者 陈文宇面向对象程序设计语言C++ - 第3章 类与对象.ppt_第3页
面向对象程序设计语言C++第2版 教学课件 作者 陈文宇面向对象程序设计语言C++ - 第3章 类与对象.ppt_第4页
面向对象程序设计语言C++第2版 教学课件 作者 陈文宇面向对象程序设计语言C++ - 第3章 类与对象.ppt_第5页
资源描述:

《面向对象程序设计语言C++第2版 教学课件 作者 陈文宇面向对象程序设计语言C++ - 第3章 类与对象.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、面向对象程序设计语言C++电子科技大学示范性软件学院1第三章类和对象3.1类与对象3.1.1类的定义首先,请大家设计一个日期类型。2第三章类和对象3.1类与对象3.1.1类的定义大家的考虑可能是这样的:structDate{intday,month,year;}voidInitDate(Date*pDate,intd,intm,inty);voidAddYear(Date*pDate,intyear);voidAddMonth(Date*pDate,intmonth);voidAddDay(Date*pDate,intday);请考虑,这样的定义有没有不妥之处呢?3第三章类和对象3.1类与

2、对象3.1.1类的定义上页的定义至少存在这样的问题:针对数据的操作和数据没有明确的联系,它们都是相对独立的。所以,在加工数据时,必须将数据的实例作为参数传递给操作函数,数据是被动的。然而,从应用的角度来看,数据应该是主动的,而操作是作为主体的数据主动发起的,也就是说,操作是被动的。4第三章类和对象3.1类与对象3.1.1类的定义C++的解决方案是:将操作归入数据结构。structDate{intday,month,year;voidInitDate(intd,intm,inty);voidAddYear(intyear);voidAddMonth(intmonth);voidAddDay(

3、intday);};5第三章类和对象3.1类与对象3.1.1类的定义经过这样的改造后,数据成为能动的主体,它不仅包含解决问题的数据,同时也包含加工数据的操作,从而数据与操作紧密地结合在一起。这种数据包真正地成为独立的单元。另外一方面,数据包内部的变化不会反射到它的外部。这就是说,数据内部结构的改变不会对使用这种数据包的程序部分带来影响。这就是数据封装的一般概念。6第三章类和对象3.1类与对象3.1.1类的定义一般地,C++是用类来实现封装机制的:classclassName{attributes;//datamembers;operations;//memberfunctions;};//

4、注意这个分号的存在这定义了一个新的数据类型:className。它既是类的名字,也是该类型的类型名。7第三章类和对象3.1类与对象3.1.1类的定义以下是日期类型的类版本:classDate{intday,month,year;voidInitDate(intd,intm,inty);voidAddYear(intyear);voidAddMonth(intmonth);voidAddDay(intday);};8第三章类和对象3.1类与对象3.1.2访问控制在一个类中,可以被外部访问的部分被定义在public段中。这些成员被称为公有成员。不能被外部访问的部分被定义在private段或pr

5、otected段中,分别称为私有成员和受保护的成员。一个类外部的函数或者其他的类只能访问这个类的公有成员(有例外)。其他成员是访问函数或类不能“看见”的(invisible),也就是不能直接访问的(inaccessable)。9第三章类和对象3.1类与对象3.1.2访问控制classDate{private:intday,month,year;//类外不可访问public:voidInitDate(intd,intm,inty);//类外可访问voidAddYear(intyear);voidAddMonth(intmonth);voidAddDay(intday);};10第三章类和对象

6、3.1类与对象3.1.2访问控制11私有段公有段接口保护段第三章类和对象3.1类与对象3.1.2访问控制数据封装是一个相对的概念,只是对于类外而言。而对于类内部,所有的成员都是相互可见的。12第三章类和对象3.1类与对象3.1.3类和对象的关系类只是一种形式化定义。要使用类提供的功能,必须使用类的实例(有例外)。类的实例就是对象。而对象要占据一定的内存空间。类和对象的关系就像整型和变量的关系。inti;Dated;13第三章类和对象3.1类与对象3.1.3类和对象的关系类代表了一组对象的共性,对象代表了特性;类是一种抽象机制,它抽象了一类对象的存储和操作特性;类是一种共享机制,它提供了一类

7、对象共享操作的实现;类是一种封装机制,它将一组数据和对该组数据的操作封装在一起;类是对象的模型,对象是类的实例。14第三章类和对象3.1类与对象3.1.3类和对象的关系不同的类对象拥有自己的数据成员,而共享函数成员的代码。一个例子:classCircle{private:intx;//圆心的x坐标inty;//圆心的Y坐标floatfRadius;//半径public:voidSetXY(inta,intb);voidS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。