C#程序设计经典教程第4章.ppt

上传人:资****亨 文档编号:127757040 上传时间:2020-04-05 格式:PPT 页数:63 大小:339KB
返回 下载 相关 举报
C#程序设计经典教程第4章.ppt_第1页
第1页 / 共63页
C#程序设计经典教程第4章.ppt_第2页
第2页 / 共63页
C#程序设计经典教程第4章.ppt_第3页
第3页 / 共63页
C#程序设计经典教程第4章.ppt_第4页
第4页 / 共63页
C#程序设计经典教程第4章.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《C#程序设计经典教程第4章.ppt》由会员分享,可在线阅读,更多相关《C#程序设计经典教程第4章.ppt(63页珍藏版)》请在金锄头文库上搜索。

1、2020 4 5 1 C 程序设计经典教程 第四章面向对象程序设计入门 1 总体要求理解面向对象的基本概念 正确区分类和对象 对象的声明和对象的创建 掌握类的定义与使用方法 正确定义类的数据成员 属性和方法 理解类的可访问性 正确使用访问修饰符控制对类成员的访问 掌握类的方法的定义 调用与重载 理解方法的参数传递的工作机制 理解值类型和引用类型的区别 理解构造函数与析构函数的作用 掌握其使用方法 方法的重载和参数传递 2 相关知识点熟悉C 中数据类型 表达式 运算符 常量与变量等基础知识 熟悉C 中数据类型转换 3 学习重点C 中类的定义 类的数据成员 属性和方法类的构造函数方法的重载和参数传

2、递 第四章面向对象程序设计入门 4 学习难点类和对象的关系方法的重载和参数传递值类型和引用类型及对象的生命周期 第四章面向对象程序设计入门 第四章面向对象程序设计入门 主要内容4 1面向对象的基本概念4 2类的定义4 3类的方法4 4构造函数 2020 4 5 6 4 1面向对象的基本概念 4 1 1对象4 1 2事件与方法4 1 3类与对象4 1 4抽象 封装 继承与多态 返回 2020 4 5 7 4 1 1对象 客观世界中任何一个事物都可以看成一个对象 object 对象可以是自然物体 如汽车 房屋 狗 也可以是社会生活中一种逻辑结构 如班级 部门 组织 甚至一篇文章 一个图形 一项计划

3、等都可以视作对象 对象是构成系统的基本单位 在实际社会生活中 人们都是在不同的对象中活动的 任何一个对象都应当具有这两个要素 即属性 attribute 和行为 behavior 一个对象往往由一组属性和一组行为构成 一辆汽车是一个对象 它的属性是生产厂家 品牌 型号 颜色 价格等 它是行为是它的功能 如发动 停止 加速等 一般来说 凡是具备属性和行为这两个要素的 都可以作为对象 4 1 1对象 对象是问题域中某些事物的一个抽象 反映事物在系统中需要保存的必要信息和发挥的作用 是包含一些特殊属性 数据 和服务 行为方法 的封装实体 具体来说 他应有唯一的名称 有一系列状态 表示为数据 有表示对

4、象行为的一系列行为 方法 简言之 对象 属性 行为 方法 操作 4 1 2事件与方法 事件 Event 又称为消息 Message 表示向对象发出的服务请求 方法 Method 表示对象能完成的服务或执行的操作功能 在一个系统中的多个对象之间通过一定的渠道相互联系 要使某一个对象实现某一种行为或操作 应当向他传送相应的消息 例如想让汽车行驶 必须由人去踩油门 向汽车发出相应的信号 对象之间就是这样通过发送和接收消息互相联系的 在面向对象的概念中 一个对象可以有多个方法 提供多种服务 完成多种操作功能 但这些方法只有在另外一个对象向他发出请求之后 发生事件 才会被执行 4 1 3类与对象 普通逻

5、辑意义上的类是现实世界中各种实体的抽象概念 而对象是现实生活中的一个个实体 例如 在现实世界中大量具体一辆辆汽车 摩托车 自行车等实体是对象 而交通工具则是这些对象的抽象 交通工具就是一个类 在面向对象的概念中 类 Class 表示具有相同属性和行为的一组对象的集合 为该类的所有对象提供统一的抽象描述 类是对相似对象的抽象 而对象是该类的一个特例 类与对象的关系是抽象与具体的关系 4 1 4抽象 封装 继承与多态 面向对象的最基本的特征是抽象性 封装性 继承性和多态性 1 抽象抽象 abstraction 是处理事物复杂性的方法 只关注与当前目标有关的方面 而忽略与当前目标无关的那些方面 例如

6、在学生成绩管理中 张三 李四 王五作为学生 我们只关心他们和成绩管理有关的属性和行为 如学号 姓名 成绩 专业等特性 抽象的过程是将有关事物的共性归纳 集中的过程 例如凡是有轮子 能滚动并前进的陆地交通工具统称为 车子 把其中用汽油发动机驱动的抽象为 汽车 把用马拉的抽象为 马车 4 1 4抽象 封装 继承与多态 抽象能表示同一类事物的本质 如果你会使用自己家里的电视机 在别人家里看到即便是不同的牌子的电视机 你也能对它进行操作 因这它具有所有电视机所共有的特征 而C 中的数据类型就是对一系列具体的数的抽象 例如 int是对所有整数的抽象 double是对所有双精度浮点型数的抽象 2 封装和信

7、息隐藏封装 encapsulation 有两个方面的含义 一是将有关的数据和操作代码封装在一个对象中 形成一个基本单位 各个对象之间相对独立 互不干扰 二是将对象中某些部份对外隐藏 即隐藏其内部细节 只留下少量接口 以便与外界联系 接收外界的消息 这种对外界隐藏的做法称为信息隐藏 informationhiding 信息隐藏还有利于数据安全 防止无关的人了解和修改数据 4 1 4抽象 封装 继承与多态 封装把对象的全部属性和全部行为结合在一起形成一个不可分割的独立单位 而通过信息隐蔽技术 用户只能见到对象封装界面上的信息 对象内部对用户是隐蔽的 例如 一台电视机就是一个封装体 从设计者的角度来

8、讲 不仅需要考虑内部的各种元器件 还要考虑主机板 显像管等元器件的连接与组装 从使用者的角度来讲 只关心其型号 颜色 重量等属性 只关心电源开关按钮 音量开关 调频按钮 视频输入输出接口等用起来是否方便 根本不用关心其内部构造 因此 封装的目的在于将对象的使用者与设计者分开 使用者不必了解对象行为的具体实现 只需要用设计者提供的消息接口来访问该对象 4 1 4抽象 封装 继承与多态 4 1 4抽象 封装 继承与多态 3 继承汽车制造厂要生产新型号的汽车 如果全部从头开始设计 将耗费大力的人力 物力和财力 但如果选择已有的某一型号的汽车为基础 再增加一些新的功能 就能快速研发出新型号的汽车 这是

9、提高生产效率的常用方法 如果在软件开发中已建立了一个名为A的类 又想建立一个名为B的类 而后者与前者内容基本相同 只是在前者基础上增加一些新的属性和行为 显然不必再从头设计一个新类 只需在A类的基础上增加一些新的内容即可 而B类的对象拥有A类的全部属性与方法 称作B类对A类的继承 在B类中不必重新定义已在A类中定义过的属性和方法 这种特性在面向对象中称作对象的继承性 继承在C 中称为派生 其中 A类称为基类或父类 B类称为派生类或子类 4 1 4抽象 封装 继承与多态 继承机制的优势在于降低了软件开发的复杂性和费用 使软件系统易于扩充 大大缩短了软件开发周期 对于大型软件的开发具有重要的意义

10、4 1 4抽象 封装 继承与多态 4 多态多态性 polymorphism 是指在基类中定义的属性或方法被派生类继承后 可以具有不同的数据类型或表现出不同的行为 其对象对同一消息会做出不同的响应 如张三 李四和王五是分别是属于三个班的三个学生 在听到上课铃声后 他们会分别走进3个不同的教室 同样 启动 是所有交通工具都具有的操作 但不同的具体交通工具其 启动 操作的具体实现是不同的 如汽车的启动是 发动机点火 启动引擎 启动轮船时要 起锚 气球飞艇启动是 充气 解缆 为了实现多态性 需要在派生类中更改从基类中自动继承来的数据类型或方法 这种为了替换基类的部分内容而在派生类中重新进行定义的操作

11、在面向对象的概念中称为覆盖 这样一来 不同类的对象可以响应同名的消息 方法 来完成特定的功能 但其具体的实现方法却可以不同 4 2类的定义 4 2 1类的声明和实例化4 2 2类的数据成员和属性4 2 3类的可访问性4 2 4值类型与引用类型 返回 4 2 1类的声明和实例化 1 类的声明类的声明一般形式如下 访问修饰符 class类名 基类 类的成员 其中 访问修饰符用来限制类的作用范围或访问级别 可省略 类名是一个合法的C 标识符 推荐使用Pascal命名规范 Pascal命名规范要求名称的每个单词的首字母要大写 基类表明所定义的类是一个派生类 可省略 类的成员放在花括号中 构成类的主体

12、用来定义类的属性和行为 类的成员包括常量 字段 属性 索引器 方法 事件 构造函数等 4 2 1类的声明和实例化 2 类的实例定义类之后 可以用定义的类声明对象 然后再通过这个对象来访问其数据或调用其方法 1 对象的声明与创建 声明对象的格式与声明基本数据类型的格式相同 其语法格式为 类名对象名例如 Studentstu1 声明一个Student对象stu1 4 2 1类的声明和实例化 但是 对象声明后需要用 new 关键字将对象实例化 这样才能为对象在内存中分配保存数据空间 实例化的语法格式为 对象名 new类名 例如 stu1 newStudent 为stu1分配内存空间也可以在声明对象同

13、时实例化对象 语法格式为 类名对象名 new类名 例如 Studentstu2 newStudent 声明同时创建对象 4 2 1类的声明和实例化 2 类成员的访问 类成员有两种访问方式 一种是在类的内部访问 另一种是在类的外部访问 在类的内部访问类的成员 表示一个类成员要使用当前类中的其他成员 可以直接使用成员名称 有时为了避免引起混淆 也可采用如下形式 this 类成员其中 this表示当前对象 是C 的关键字 4 2 1类的声明和实例化 实例4 1 定义Student类并实例化类的对象 4 2 2类的数据成员和属性 类的成员包括类的常量 字段 属性 索引器 方法 事件 构造函数等 其中

14、常量 字段和属性都是与类的数据有关的成员 1 常量常量的值是固定不变的 类的常量成员是一种符号常量 符号常量是由用户根据需要自行创建的常量 在程序设计过程中可能需要反复使用到某个数据 如圆周率3 1415926 如果在代码中反复书写 不仅麻烦而且容易出现书名错误 此时 可考虑将其声明为一个符号常量 用户定义符号常量使用const关键字 在定义时 必须指定名称和值 其一般形式如下 访问修饰符 const数据类型常量名 常量的值 4 2 2类的数据成员和属性 2 字段字段表示类的成员变量 字段的值代表某个对象的数据状态 不同的对象 数据状态不同 意味着各字段的值也不同 声明字段的方法与定义普通变量

15、的方法相同 其一般格式如下 访问修饰符 数据类型字段名 其中 访问修饰符用来控制字段的访问级别 可省略 例如 publicdoubleradius 4 2 2类的数据成员和属性 3 属性字段和常量描述了类的数据 当这些数据允许外界访问时 可以使用访问修饰符public 不允许外界访问时 可以使用private或protected定义属性的一般形式如下 访问修饰符 数据类型属性名 get 获取属性的代码 用return返回值 set 设置属性的代码 用value赋值 4 2 2类的数据成员和属性 实例4 2 定义类的数据成员及属性 4 2 3类的可访问性 为了控制类和类成员的作用范围或访问级别

16、C 提供了访问修饰符 用于限制对类和类成员的访问属性 这些访问修饰符包括public private internal protected protectedinternal在使用访问修饰符来定义命名空间 结构和类及其成员时 要注意以下几点 1 一个成员或类型只能有一个访问修饰符 使用protectedinternal组合时除外 2 命名空间上不允许使用访问修饰符 命名空间没有访问限制 3 如果未指定访问修饰符 则使用默认的可访问性 类的成员默认为private 如实例4 2中的pi没有指定访问修饰符 默认为private 4 第一级类型 指不嵌套在其他类型中的类型 的可访问性只能是internal或public 默认可访问性是internal 如实例4 2中的Circle类没有指定访问修饰符 默认为internal 4 2 4值类型与引用类型 C 将数据类型分为值类型 valuetype 和引用类型 referencetype 1 值类型值类型变量直接包含其本身的数据 前面提到的简单类型 int bool char float double decimal 结构类型 struct 枚

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号