华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第九讲 类与对象(I)面向对象基础

华东师范大学数学科学学院 目录页 School of Mathematical Sciences,ECNU Contents 面向对象的基本特点 2 类和对象的基本操作 3 构造函数和析构函数 http://math.ecnu.edu.cn/~jypan
目录页 Contents 华东师范大学 数学科学学院 School of Mathematical Sciences, ECNU http://math.ecnu.edu.cn/~jypan 1 2 面向对象的基本特点 类和对象的基本操作 3 构造函数和析构函数

面向对象的基本特点 高级语言发展 ■为什么面向对象 面向对象的特征 http://math.ecnu.edu.cn/~jypan 3
http://math.ecnu.edu.cn/~jypan 3 面向对象的基本特点 高级语言发展 为什么面向对象 面向对象的特征 1

高级语言发展 ●第一代:对数学表达式有很强的运算处理能力 代表有Fortran,Algol60 ●第二代:重点是如何有效地表达算法 代表有Pascal,C ●第三代:引入抽象数据类型的程序设计语言 代表有Ada ●第四代:面向对象程序设计语言 代表有Simulac67,Smalltalk80、C++、Java http://math.ecnu.edu.cn/~jypan 4
http://math.ecnu.edu.cn/~jypan 4 高级语言发展 第一代:对数学表达式有很强的运算处理能力 代表有 Fortran,Algol 60 第二代:重点是如何有效地表达算法 代表有 Pascal,C 第三代:引入抽象数据类型的程序设计语言 代表有 Ada 第四代:面向对象程序设计语言 代表有 Simula67,Smalltalk80、C++、Java

为什么面向对象 出发点 模仿人类认识和理解现实世界的自然思维,更直观地描述 客观世界中存在的事物(对象)以及它们之间的关系。 目的 通过提高代码的可重用性,降低软件开发成本和维护成本, 从而大大提高程序员的生产力。 http://math.ecnu.edu.cn/~jypan 5
http://math.ecnu.edu.cn/~jypan 5 为什么面向对象 模仿人类认识和理解现实世界的自然思维,更直观地描述 客观世界中存在的事物(对象)以及它们之间的关系。 出发点 通过提高代码的可重用性,降低软件开发成本和维护成本, 从而大大提高程序员的生产力。 目的

面向对象程序设计语言 基本特点 ·高级语言 ·将客观事物看作具有属性(数据)和行为(函数)的对象 ●通过抽象找出同一类对象的共同属性和行为,形成类 通过类的继承与多态实现代码重用 主要特征 抽象、封装、继承、多态 http://math.ecnu.edu.cn/~jypan 6
http://math.ecnu.edu.cn/~jypan 6 面向对象程序设计语言 基本特点 抽象、封装、继承、多态 主要特征 高级语言 将客观事物看作具有属性(数据)和行为(函数)的对象 通过抽象找出同一类对象的共同属性和行为,形成类 通过类的继承与多态实现代码重用

抽象 什么是抽象 对具体问题/事物(对象)进行概括,抽出这一类对象的 共有性质并加以描述的过程。 ·首先关注的是问题的本质及描述,其次是实现过程或细节 ●抽象包括:数据抽象和行为抽象 一数据抽象: 描述某类对象的属性或状态(对象相互区别的物理量) 一行为抽象(或功能抽象): 描述某类对象的共同行为或功能特征 ·抽象的实现:类与对象 http://math.ecnu.edu.cn/-jypan 7
http://math.ecnu.edu.cn/~jypan 7 抽象 对具体问题/事物(对象)进行概括,抽出这一类对象的 共有性质并加以描述的过程。 首先关注的是问题的本质及描述,其次是实现过程或细节 抽象包括:数据抽象和行为抽象 - 数据抽象: 描述某类对象的属性或状态(对象相互区别的物理量) - 行为抽象(或功能抽象): 描述某类对象的共同行为或功能特征 抽象的实现:类与对象 什么是抽象

抽象示例 例:时钟的描述 ·数据抽象: int hour,int minute,int second ●行为抽象: ShowTime(),SetTime() http://math.ecnu.edu.cn/~jypan 8
http://math.ecnu.edu.cn/~jypan 8 抽象示例 例:时钟的描述 ► 数据抽象: int hour, int minute, int second ► 行为抽象: ShowTime(), SetTime()

封装 什么是封装 将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体, 即将数据与操作数据的函数进行有机结合,形成“类”,其中数据 和函数都是类的成员。 为什么封装 十封装可以增强数据的安全性,并简化编程。用户不必了解具体的实现 细节,而只需要通过外部接口,以给定的访问权限,来访问类的成员。 十提供接口供外部调用,隐藏内部细节。 中简化被封装对象间的接口,降低系统的耦合度。 http://math.ecnu.edu.cn/~jypan 9
http://math.ecnu.edu.cn/~jypan 9 封装 将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体, 即将数据与操作数据的函数进行有机结合,形成 “类”,其中数据 和函数都是类的成员。 † 封装可以增强数据的安全性,并简化编程。用户不必了解具体的实现 细节,而只需要通过外部接口,以给定的访问权限,来访问类的成员。 † 提供接口供外部调用,隐藏内部细节。 † 简化被封装对象间的接口,降低系统的耦合度。 什么是封装 为什么封装

示例(时钟类) 例:时钟的描述 数据抽象:int hour,int minute,int second D行为抽象:ShowTime(),SetTime() 时钟类的声明 class Clock public: void SetTime(int h,int m,int s); void ShowTime(); private: int hour,minute,second; 此处的分号不能省! public和private用于指定成员的不同访问权限 http://math.ecnu.edu.cn/~jypan 10
http://math.ecnu.edu.cn/~jypan class Clock { public: void SetTime(int h, int m, int s); void ShowTime(); private: int hour, minute, second; }; 10 示例(时钟类) 例:时钟的描述 ► 数据抽象:int hour, int minute, int second ► 行为抽象: ShowTime(), SetTime() 此处的分号不能省! 时钟类的声明 † public 和 private 用于指定成员的不同访问权限

继承与多态 继承 C++提供继承机制,允许程序员在保持原有类特性的基础上, 进行更具体、更详细的说明。 多态 同一段程序能处理多种类型对象。 在C++中,多态有强制多态(如类型转换)、重载多态(如 函数重载、运算符重载)、类型参数化和虚函数、模板等。 http://math.ecnu.edu.cn/~jypan 11
http://math.ecnu.edu.cn/~jypan 11 继承与多态 C++ 提供继承机制,允许程序员在保持原有类特性的基础上, 进行更具体、更详细的说明。 同一段程序能处理多种类型对象。 在 C++ 中,多态有强制多态(如类型转换)、重载多态(如 函数重载、运算符重载)、类型参数化和虚函数、模板等。 继承 多态
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第八讲 排序算法.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第七讲 输入输出与(C 语言)文件操作.pdf
- 《C++ 语言程序设计》课程教学资源(应用阅读)Pointers and Memory.pdf
- 《C++ 语言程序设计》课程教学资源(应用阅读)内存分配——栈和堆.pdf
- 《C++ 语言程序设计》课程教学资源(应用阅读)Fast and stable matrix multiplication.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(应用阅读)Gauss消去法求解线性方程组.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(应用阅读)矩阵乘积快速算法——Strassen 算法.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第六讲 指针.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第五讲 数组(二)字符数组(字符串).pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第五讲 数组(一)数值数组.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第四讲 函数.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(应用阅读)定积分的近似计算(数值积分).pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(应用阅读)定积分数值计算.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第三讲 选择与循环.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第二讲 C++编程基础.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第一讲 计算机基础知识.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(应用阅读)IEEE浮点运算标准.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)课程介绍(授课教师:潘建瑜).pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(应用阅读)C++ 程序设计简明讲义(共十六讲).pdf
- 《互联网营销理论与工具运用》课程教学资源(PPT课件)08 互联网营销方案策划.pptx
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第十讲 类与对象(II)面向对象进阶.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第十一讲 类与对象(III)面向对象提高.pdf
- 《C++ 语言程序设计》课程教学资源(应用阅读)C++ vector使用方法.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第十二讲 运算符重载与自动类型转换.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第十三讲 继承与派生.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第十四讲 多态.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第十五讲 文件流与输出输入重载.pdf
- 华东师范大学:《C++ 语言程序设计》课程教学资源(课件讲稿)第十六讲 标准模板库(Standard Template Library,STL).pdf
- 《C++ 语言程序设计》课程教学资源(应用阅读)C++ Reference Card(C++ RC by Greg Book,2002).pdf
- 《C++ 语言程序设计》课程教学资源(应用阅读)C++ RC by Mississippi State U.(2009).pdf
- 《C++ 语言程序设计》课程教学资源(应用阅读)ASCII码(256完整版)The ASCII Character Set.pdf
- 《C++ 语言程序设计》课程教学资源(应用阅读)ASCII 码——常用ASCII码.pdf
- 西安电子科技大学:《操作系统》课程教学资源(PPT课件)Introduction(主讲:苏锐丹).pptx
- 西安电子科技大学:《操作系统》课程教学资源(PPT课件)Operating-System Structure.pptx
- 西安电子科技大学:《操作系统》课程教学资源(PPT课件)Processes.pptx
- 《移动互联网技术》课程教学资源(培训教材)Cisco Press - Building the Mobile Internet(Mark Grayson, Kevin Shatzkamer, Klaas Wierenga).pdf
- 西安电子科技大学:《移动互联网技术》课程教学资源(PPT课件)01 课程介绍(主讲:苏锐丹).ppt
- 西安电子科技大学:《移动互联网技术》课程教学资源(PPT课件)02 移动互联网概述.ppt
- 西安电子科技大学:《移动互联网技术》课程教学资源(PPT课件)03 移动互联网技术(Android安全).ppt
- 西安电子科技大学:《移动互联网技术》课程教学资源(PPT课件)03 Android应用安全 Android application security.pptx