第3章 类及对象(一).ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象程序设计技术 第3章 类和对象 3.1类和对象的基本概念 3.1.1 结构和类 用C语言和其它传统的语言所编写的程序必然包含一组数据结构以及用来处理这些数据结构的模块。由于这些语言没有提供数据抽象的功能,程序和数据结构是分离的,这就存在使用错误的数据调用正确的程序模块,或使用正确的数据调用错误的程序模块。使数据和程序保持一致性是程序员的一个沉重负担。 3.1类和对象的基本概念 1 、回顾:C语言的结构体 例3.0、已知复数的实部、虚部,分别输出复数的实部、虚部及绝对值 3.1类和对象的基本概念 3.1类和对象的基本概念 C语言结构体总结: 只有数据成员 成员可以被外部随便使用 complex init()和double abscomplex( ) 都是专门处理结构体的函数,但在结构上和结构体没有任何关系 既然是专门处理结构体的函数 何不包含在结构体内? 3.1类和对象的基本概念 2、C++对C语言的结构体进行了扩充: 在C++中,在定义一个结构时,可以定义成员函数; 例3.1:已知复数的实部、虚部,分别输出复数的实部、虚部及绝对值——初步熟悉成员函数 3.1类和对象的基本概念 3.1类和对象的基本概念 C++结构体的扩充总结: 在C++中,扩充了成员函数;如程序中的init( )、realcomplex( )、imagcomplex( )、abscomplex ( )等; 在C++的结构中,成员分公有成员(public)和私有成员(private),私有成员只能在结构内使用,公有成员既可以在结构内使用,亦可在其它地方使用; 在结构中,未指明为公有成员或私有成员的成员默认为公有成员; 成员函数的调用方法:结构变量.成员函数(实参表); 3.1类和对象的基本概念 3、C++对结构的扩充——类 C++提供了一种比结构体更为安全的数据类型——类。 类与结构的扩充形式非常相似,但凡是未定义为公有成员(public)或保护成员(protected)的成员均为私有成员(private)——封装性的体现。 例3.2:将例3.1用类定义。 3.1类和对象的基本概念 3.1类和对象的基本概念 class 类名 { [private:] 私有数据成员声明; 私有成员函数声明; protected: 保护数据成员声明; 保护成员函数声明; public: 公有数据成员声明; 公有成员函数声明; }; 各个成员函数的定义 说明 public,private和protected关键字被称为访问权限修饰符或访问控制修饰符。它们在类定义中出现的前后顺序及出现的次序没有限制。 如果一个成员函数在类定义中进行了定义,实现部分将不出现。如果所有的成员函数在类中进行了定义,则没有实现部分。 3.1类和对象的基本概念 例3.3 定义一个日期类,其要求为: 设置年、月、日的具体值; 判断该年是否为闰年; 显示年、月、日 1、分析 类名(抽象数据类型):Date 数据成员:用整型数year、month、 day表示年 、月、日; 成员函数(对Date的操作): setdate( ):设置日期 isleapyear( ):判断是否为闰年 printdate( ):显示日期 3.1类和对象的基本概念 2、类的定义 3.1类和对象的基本概念 3、类的使用(主函数) 3.1类和对象的基本概念 3.1.2、数据成员 1、一般定义格式:类型 数据成员名 2、说明 数据成员中,不能使用auto、register、extern等进行说明;(请思考为什么?); ——定义类时,计算机并不给数据成员分配内存空间,在定义对象时才分配空间; 不能在定义时给类中的成员赋初值。(请思考为什么) 数据成员既可为基本数据类型,也可以是复杂数据类型(数组、指针、引用、结构体,也可以是类对象等) 数据成员通常定义为私有成员,以实现数据的隐藏; 3.1类和对象的基本概念 3.1.3 、函数成员 成员函数通常设为公有的,以通过消息传递访问数据成员;保护成员主要用于继承。 成员函数的声明通常采用以下两种方式: 将成员函数以普通函数的形式在类外定义 一般形式是: 返回类型 类名∷成员函数名(参数表) { // 函数体 } 例如, 以下是表示坐标点的类Coord的声明。 3.1类和对象的基本概念 class Coord { private: int x,y; public: void setCoord (int,int); // 设置坐标点 int getx();

文档评论(0)

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

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

1亿VIP精品文档

相关文档