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

飨)单乘师学 第九讲 类与对象 (I)面向对象基础
第九讲 类与对象 (I) 面向对象基础

面向对象基础 ■面向对象的基本特点 ■类和对象的基本操作 ■构造函数和析构函数 ■类的组合 ■结构体与联合体 ■类的UML描述
2 面向对象基础 ◼ 面向对象的基本特点 ◼ 类和对象的基本操作 ◼ 构造函数和析构函数 ◼ 类的组合 ◼ 结构体与联合体 ◼ 类的 UML 描述

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

为什么面向对象 ●出发点:更直观地描述客观世界中存在的事物(对象) 以及它们之间的关系 ●目的:通过提高代码的可重用性,降低软件的开发成本和 维护成本,从而大大提高程序员的生产力 ●面向对象基本特点 ●是高级语言 ●将客观事物看作具有属性(数据)和行为(函数)的对象 ●通过抽象找出同一类对象的共同属性和行为,形成类 ●通过类的继承与多态实现代码重用 ●面向对象的几个主要特征:抽象、封装、继承和多态
4 为什么面向对象 ⚫ 出发点:更直观地描述客观世界中存在的事物(对象) 以及它们之间的关系 ⚫ 面向对象基本特点 ⚫ 是高级语言 ⚫ 将客观事物看作具有属性(数据)和行为(函数)的对象 ⚫ 通过抽象找出同一类对象的共同属性和行为,形成类 ⚫ 通过类的继承与多态实现代码重用 ⚫ 目的:通过提高代码的可重用性,降低软件的开发成本和 维护成本,从而大大提高程序员的生产力 ⚫ 面向对象的几个主要特征:抽象、封装、继承和多态

抽象 抽象:对具体问题/事物(对象)进行概括,抽出这一类对象 的公共性质并加以描述的过程。 ●首先关注的是问题的本质及描述,其次是实现过程或细节 ●抽象包括:数据抽象和行为抽象 数据抽象: 描述某类对象的属性或状态(对象相互区别的物理量) 行为抽象(功能抽象、代码抽象): 描述某类对象的共同行为或功能特征 ●抽象的实现:类
5 抽象 抽象:对具体问题/事物(对象)进行概括,抽出这一类对象 的公共性质并加以描述的过程。 ⚫ 首先关注的是问题的本质及描述,其次是实现过程或细节 ⚫ 抽象包括:数据抽象和行为抽象 - 数据抽象: 描述某类对象的属性或状态(对象相互区别的物理量) - 行为抽象(功能抽象、代码抽象): 描述某类对象的共同行为或功能特征 ⚫ 抽象的实现:类

抽象示例 例:时钟的描述 ●数据抽象: int hour, int minute int second ●行为抽象: showTime, setTimeo
6 抽象示例 例:时钟的描述 ⚫ 数据抽象: int hour, int minute, int second ⚫ 行为抽象: showTime(), setTime()

封装 封装:将抽象得到的数据和行为(或功能)相结合,形成 个有机的整体,即将数据与操作数据的函数进行有机结合, 形成“类”,其中数据和函数都是类的成员。 为什么封装 封装可以增强数据的安全性,并简化编程。用户不必了解具 体的实现细节,而只需要通过外部接口,以特定的访问权限, 来使用类的成员
7 封装 封装:将抽象得到的数据和行为(或功能)相结合,形成一 个有机的整体,即将数据与操作数据的函数进行有机结合, 形成 “类”,其中数据和函数都是类的成员。 †封装可以增强数据的安全性,并简化编程。用户不必了解具 体的实现细节,而只需要通过外部接口,以特定的访问权限, 来使用类的成员。 为什么封装

示例(时钟类) 例:时钟的描述 ●数据抽象: int hour, int minute, int second ●行为抽象: showtime(), settime() ●实现方法:时钟类 时钟类 class Clock public void setTime(int NewH, int NewM, int NewS) void showTime o; private int hour minute. second 此处的分号不能省略! public和 private用于指定成员的不同访问权限 8
class Clock { public: void setTime(int NewH, int NewM, int NewS); void showTime(); private: int hour, minute, second; }; 8 示例(时钟类) 例:时钟的描述 ⚫ 数据抽象:int hour, int minute, int second ⚫ 行为抽象:showTime(), setTime() ⚫ 实现方法:时钟类 此处的分号不能省略! 时钟类 † public 和 private 用于指定成员的不同访问权限

继承与多态 继承:C+提供了继承机制,允许程序员在保持原有类特性 的基础上,进行更具体、更详细的说明。 多态:同一段程序能处理多种类型对象的能力。在C++中, 多态性是通过强制多态(如类型转换)、重载多态(如函数 重载、运算符重载)、类型参数化和包含多态(如虚函数、 模板)
9 继承与多态 继承:C++提供了继承机制,允许程序员在保持原有类特性 的基础上,进行更具体、更详细的说明。 多态:同一段程序能处理多种类型对象的能力。在C++中, 多态性是通过强制多态(如类型转换)、重载多态(如函数 重载、运算符重载)、类型参数化和包含多态(如虚函数、 模板)

类和对象基本操作 ●类的声明 ●类的成员:数据与函数 ●对象的创建 对象成员的访问 ●成员函数的定义,内联成员函数
10 ⚫ 类的声明 ⚫ 类的成员:数据与函数 ⚫ 对象的创建 ⚫ 对象成员的访问 ⚫ 成员函数的定义,内联成员函数 类和对象基本操作
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C程序设计》课程电子教案(PPT课件)第四章 数组和结构.ppt
- 山东大学:《人机交互技术》课程教学资源(PPT课件讲稿)第4章 人机交互技术.ppt
- 基于分布式哈希表的对等系统关键技术研究(论文PPT).ppt
- 西安交通大学:《微型计算机硬件技术》课程教学资源(PPT课件讲稿)第三章 总线线驱动与接口(主讲:桂小林).ppt
- 电子科技大学:《信息安全概论》课程教学资源(PPT课件讲稿)第一章 概述(秦志光).ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第7章 广域网.ppt
- 《电子技术》课程教学资源(PPT讲稿资料)玩转Arduino合集.ppt
- 《数字图像处理》课程教学资源(PPT课件)第三章 灰度直方图.ppt
- 《机器学习》课程教学资源(PPT课件讲稿)第十三章 半监督学习.pptx
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第三章 控制语句.ppt
- 山东大学:《微机原理及单片机接口技术》课程教学资源(PPT课件讲稿)第四章 指令系统及汇编语言程序设计(4.9-4.11).ppt
- 《计算机硬件基础》课程教学资源(PPT课件讲稿)第六章 汇编语言及其程序设计.ppt
- 中国科学技术大学:《网络信息安全 NETWORK SECURITY》课程教学资源(PPT课件讲稿)第一章 计算机网络安全概述2/2(主讲:肖明军).ppt
- 清华大学:Computational Models for Social Network Analysis(PPT讲稿)mining big social networks(Part III:Group and Structure).pptx
- 苏州大学:文档评分与向量空间模型(PPT讲稿).ppt
- 淮阴工学院:《数据库原理》课程教学资源(PPT课件讲稿)第2章 数据库系统结构.ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 5 互斥与同步(Mutual Exclusion and Synchronization)5.3 Semaphores.ppt
- 《编译原理》课程教学资源(PPT课件讲稿)第五章 语法制导的翻译 5.1 语法制导的定义 5.2 S属性定义的自下而上计算.ppt
- 《数字图像处理》课程教学资源(PPT课件讲稿)第7章 图像分割.ppt
- 《人工智能》课程电子教案(PPT课件讲稿)第9章 机器学习与知识发现.ppt
- 《计算机视觉》课程教学资源(PPT课件讲稿)第十二章 目标识别 Object Recognition.ppt
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)引言、背景概述.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第3章 栈和队列.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第4章 存储层次结构设计.ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)分治算法.pptx
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第五章 物流配送.ppt
- 广西医科大学:《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿)CHAPTER 9 COMMUNICATIONS CIRCUITS.pptx
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第三章 80x86指令系统和寻址方式.ppt
- 机械工业出版社:国家“十一五”规划教材《数据库原理与应用教程》教学资源(PPT课件,第3版)第8章 数据库设计.ppt
- 《大学计算机》实践教程(PPT讲稿)面向计算思维能力培养(Raptor程序设计).pptx
- 南京航空航天大学:《数据结构》课程教学资源(PPT课件讲稿)第一章 绪论.ppt
- 《数字图像处理学》课程教学资源(PPT课件讲稿)第9章 数学形态学及其应用.ppt
- 东南大学:《操作系统概念 Operating System Concepts》课程教学资源(PPT课件讲稿)04 线程 Threads.ppt
- 《计算机视觉》课程教学资源(PPT课件)第八章 基于运动视觉的稠密估计——光流法(Optical Flow).ppt
- 中国科学技术大学:《算法基础》课程教学资源(PPT课件讲稿)第八讲 串匹配算法(主讲:顾乃杰).ppt
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)图像成像机理与模型.pptx
- 数据包检测技术(PPT讲稿)High-Performance Pattern Matching for Intrusion Detection.ppt
- 《计算机操作系统》课程教学资源(PPT课件讲稿)第8章 计算机系统的测试.ppt
- 西北农林科技大学:高性能计算之并行编程技术(讲座PPT,报告人:周兆永).ppt
- 山东大学:《微机原理及单片机接口技术》课程教学资源(PPT课件讲稿)第四章 指令系统及汇编语言程序设计(4.1-4.6).ppt