《计算科学基础研究》课程教学资源(PPT课件讲稿)类的定义

类的定义
类的定义

回顾 程序包括 数据 数据类型,数据结构 处理过程 ■算法 ■两种程序设计思想 面向过程以操作为中心 面向对象:以数据为中心
2 回顾 ◼ 程序包括 – 数据 ◼ 数据类型,数据结构 – 处理过程 ◼ 算法 ◼ 两种程序设计思想 – 面向过程:以操作为中心 – 面向对象:以数据为中心

数据与操作:面向过程观点 程序就是对数据进行一系列的操作 先表示数据:常量变量 再来处理数据 z =X + y print z 特点数据与操作分离 数据是被动的操作是主动的
3 数据与操作:面向过程观点 ◼ 程序就是对数据进行一系列的操作 – 先表示数据:常量,变量 – 再来处理数据 x = 1 y = 2 z = x + y print z ◼ 特点:数据与操作分离 – 数据是被动的,操作是主动的

以过程为中心 ■准备好数据之后,主要是进行数据处理 过程的设计,即算法设计. 这种设计方法中数据通常对整个处理 过程都是公开的不能隐藏数据 Y 12x y#和上一行处理同样的数据x,Y print z
4 以过程为中心 ◼ 准备好数据之后,主要是进行数据处理 过程的设计,即算法设计. ◼ 这种设计方法中,数据通常对整个处理 过程都是公开的,不能隐藏数据. x = 1 y = 2 z = x + y w = x – y # 和上一行处理同样的数据x,y z = z * w print z

复杂处理过程的设计 ■模块化 def opl(a, b) return★a-b*b def op2(a, b) 函数可以看作是更高 return a★★b+b★★a 抽象级的操作,与普通 操作似乎并无本质差别 1 x=1 3 工es=x*x-y*y result op1(x, y) print res result2 op2(x, z) 但函数有数据隐藏功能 print result result2
5 复杂处理过程的设计 ◼ 模块化 def op1(a,b): return a * a - b * b def op2(a,b): return a ** b + b ** a x = 1 y = 2 z = 3 result1 = op1(x,y) result2 = op2(x,z) print result1 + result2 函数可以看作是更高 抽象级的操作,与普通 操作似乎并无本质差别. x = 1 y = 2 res = x*x – y*y print res 但函数有数据隐藏功能

函数与数据隐藏 函数是功能黑箱 使用者需要的只是函数的功能,并不需要知 晓它内部是如何实现功能的 函数内部处理的数据不对函数外部开放 个函数不能直接访问另一个函数内部的数据
6 函数与数据隐藏 ◼ 函数是功能黑箱 – 使用者需要的只是函数的功能,并不需要知 晓它内部是如何实现功能的 – 函数内部处理的数据不对函数外部开放 ◼ 一个函数不能直接访问另一个函数内部的数据

小结:面向过程设计 数据与操作分离,以操作过程为中心 先表示数据 主要精力放在设计数据操作及其流程控制 对复杂程序采用自顶向下设计和模块化设计 将使用低级别操作的复杂过程设计成使用高级别操作的 简单过程 不适合的应用:如GU程序 没有明确的执行流程,由不可预知的事件驱动处理 过程
7 小结:面向过程设计 ◼ 数据与操作分离,以操作过程为中心 – 先表示数据 – 主要精力放在设计数据操作及其流程控制 – 对复杂程序采用自顶向下设计和模块化设计 ◼ 将使用低级别操作的复杂过程设计成使用高级别操作的 简单过程 ◼ 不适合的应用:如GUI程序 – 没有明确的执行流程,由不可预知的事件驱动处理 过程

数据与操作:面向对象观点 数据与操作不可分离 数据类型概念已经提示我们特定数据值和特定操 作是不可分割的两件事情 Q:请问x+y是什么意思? A:+对不同类型的xy值有不同意义 ■既然如此何不将特定数据值与特定操作捆绑 在一起,形成一种新型"数据"? 由此产生了对象概念
8 数据与操作:面向对象观点 ◼ 数据与操作不可分离 – 数据类型概念已经提示我们:特定数据值和特定操 作是不可分割的两件事情 ◼ Q:请问x+y是什么意思? ◼ A:+对不同类型的x,y值有不同意义. ◼ 既然如此,何不将特定数据值与特定操作捆绑 在一起,形成一种新型"数据"? – 由此产生了对象概念

对象 对象(Obec:集数据与操作于一身 对象拥有特定数据 存储在实例变量中 对象能对其数据进行特定操作 对象内的函数 对象的属性:实例变量和方法
9 对象 ◼ 对象(Object):集数据与操作于一身. – 对象拥有特定数据 ◼ 存储在实例变量中 – 对象能对其数据进行特定操作 ◼ 对象内的函数 对象的属性:实例变量和方法

对象 ■计算:向对象发操作请求消息 对象是主动的,自己掌控对其数据的操作 对象将自己能执行的操作对外公开 面向对象( Object-Orientee):软件系统由 各种对象组成对象之间通过消息进行 交互
10 对象 ◼ 计算:向对象发操作请求消息. – 对象是主动的,自己掌控对其数据的操作 – 对象将自己能执行的操作对外公开 ◼ 面向对象(Object-Oriented):软件系统由 各种对象组成,对象之间通过消息进行 交互
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第9章 模块化开发.ppt
- 利用EXCEL进行数据分析与图表处理(PPT讲稿).pptx
- 北京师范大学:《多媒体技术基础》课程教学资源(PPT课件讲稿)第二章 数字图像(曾兰芳).ppt
- 上海交通大学:《通信网络》课程PPT教学课件(Communication Networks)Introduction(主讲:叶通).pptx
- 上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第4章 循环控制.ppt
- 《单片机原理及应用》课程教学资源(PPT课件讲稿)第6章 AT89S52单片机的串行口.ppt
- 中国科学技术大学:《并行计算 Parallel Computing》课程教学资源(PPT课件讲稿)并行编译简介.ppt
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)抽象数据类型 Abstract Data Types.ppt
- 《数据结构》课程教学资源:课程教学资源(PPT课件讲稿)第九章 查找表.ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)动态规划.pptx
- 上海交通大学:Mining Massive Datasets(PPT讲稿).ppt
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第一章 概述(谢希仁).ppt
- 北京航空航天大学:《数据挖掘——概念和技术(Data Mining - Concepts and Techniques)》课程教学资源(PPT课件讲稿)Chapter 03 Data Preprocessing.ppt
- 《数字图象处理》课程教学资源(PPT课件讲稿)第七章 邻域运算.ppt
- 上海交通大学:《编译器构造》课程教学资源(PPT讲稿,马融)Compiler.pptx
- 《软件工程 Software Engineering》教学资源:课程教学大纲.pdf
- 沈阳理工大学:《单片机C语言应用程序设计》课程PPT教学课件(单片机C语言编程)04 C51编程设计(廉哲).pptx
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)傅里叶分析与卷积 Fourier Analysis and Convolution.pptx
- 北京科技大学:物联网知识体系和学科建设(PPT讲稿,王志良).ppt
- 香港理工大学:Discovering Classification Rules.ppt
- 南京大学:《编译原理》课程教学资源(PPT课件讲稿)第九章 机器无关的优化(赵建华).ppt
- 《电子商务概论》课程教学资源(PPT课件讲稿)第一章 电子商务基础知识(主讲:贾朝辉).pptx
- 《操作系统》课程教学资源(PPT课件讲稿)内存管理 Memory Management.ppt
- 沈阳理工大学:《大学计算机基础》课程教学资源(PPT课件讲稿)第3章 编辑排版软件(Microsoft Word 2000).pps
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第4章 算法控制结构.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第二章 线性表.ppt
- 上海交通大学:《数字图像处理 Digital Image Processing》课程教学资源(PPT课件讲稿,第三版)Chapter 12 Object Recognition.pptx
- 《The C++ Programming Language》课程教学资源(PPT课件讲稿)Lecture 01 From C to C++.ppt
- 《数据库系统概论 An Introduction to Database System》课程教学资源(PPT课件讲稿)第一讲 绪论.ppt
- 《计算机网络安全技术》课程教学资源(PPT课件讲稿)第五章 防火墙技术.ppt
- 《软件测试 Software Testing》教学资源(PPT讲稿)Part 2 Testing Fundamentals.ppt
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第2章 数据类型及基本运算量.ppt
- Flexsim 初级培训讲义(PPT讲稿)Flexsim Basic Training.ppt
- 清华大家:字符串匹配算法(PPT讲稿)String Matching Algorithm(Overview & Analysis).ppt
- 四川大学:《Linux操作系统》课程教学资源(PPT课件讲稿)第3章 Shell及其编程(主计:潘薇).ppt
- 面向对象程序设计语言(PPT课件讲稿).ppt
- 《面向对象程序设计》课程教学资源(课件讲稿)C++语言的面向对象特征、Java语言的面向对象特征、Python语言的面向对象特征、R语言的面向对象特征.ppt
- 安徽理工大学:《Linux开发基础 Development Foundation on Linux OS》课程教学资源(PPT课件讲稿)GNU C/C++ programming、CGI programming in GNU C/C++ language(方贤进).ppt
- 《Photoshop基础教程与上机指导》课程教学资源(PPT讲稿)第8章 简单编辑图像.ppt
- 中国科学技术大学:《计算机组成原理》课程教学资源(PPT课件讲稿)第五章 虚拟存储器(主讲:李曦).ppt