c--《面向对象程序设计》第一节-2011

上传人:101****457 文档编号:102349530 上传时间:2019-10-02 格式:PPT 页数:44 大小:871.51KB
返回 下载 相关 举报
c--《面向对象程序设计》第一节-2011_第1页
第1页 / 共44页
c--《面向对象程序设计》第一节-2011_第2页
第2页 / 共44页
c--《面向对象程序设计》第一节-2011_第3页
第3页 / 共44页
c--《面向对象程序设计》第一节-2011_第4页
第4页 / 共44页
c--《面向对象程序设计》第一节-2011_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《c--《面向对象程序设计》第一节-2011》由会员分享,可在线阅读,更多相关《c--《面向对象程序设计》第一节-2011(44页珍藏版)》请在金锄头文库上搜索。

1、第一章 程序设计方法和C+语言概述,复习几个概念:程序,指令,语言;补码 1.1 程序编写过程 1.2 面向过程的程序设计 1.3 面向对象的程序设计 1.4 C+程序设计语言的发展 1.5 程序开发过程 1.6 简单的C+程序,小结,问题,计算机程序,指令,语言,计算机的工作是用程序来控制的 程序是指令的集合。 指令是计算机可以识别的命令。不同计算机识别的指令系列称为计算机的指令系统。 语言是编写程序的工具,概念复习,计算机语言是用来编写_的。 程序必须被翻译为电信号,计算机才能够支配和处理;编程语言(计算机语言)必须实现翻译过程。 计算机语言和编译工具属于_。,复习1,系统软件,程序,计算

2、机可以存储程序指令和数据。 数据在计算机中存放的形式为:_。 数通过_编码方式转成二进制的形式存放的。 字符通过_编码方式转成二进制的形式存放的。,复习2,二进制,补码,ASCII,二进制数的编码表示:补码,计算机中的补码表示法 负数的补码由该数反码的末位加 1 求得 对补码再求补即得到原码 补码运算规则 符号位可作为数值参加运算 减法运算可转换为加法运算: 加上一个负数等于加上该数的补码 补码运算的结果仍为补码 运算结果溢出: 负数之和得正数,或正数之和得负数,信息的表示与存储,-5 (8位表示) 1000 0101 1111 1010 1111 1011,信息的表示与存储练习,(1) 与十

3、进制数127等值的二进制数是 A) 01111111 B) 11101111 C) 01111011 D) 10000000 (2)二进制数01100100转换成十六进制数是【 】。 A)64 B)63 C)100 D)144 (3)有一个数值152,它与十六进制6A相等,那么该数值是【 】。 A)二进制数 B)八进制数 C)十进制数,A,A,B,程序编写过程,程序设计,用计算机解决一个实际应用问题时的整个处理过程称为程序设计,1.2 面向过程的程序设计方法,1.2 面向过程的程序设计,基本结构 1、顺序 2、分支 3、循环,1.2 面向过程的程序设计,模块的单入 指的是该模块被哪些模块所调用

4、; 模块的单出 指的是该模块调用了哪些模块。,1.2 面向过程的程序设计,主要思想 自顶向下 逐步求精 一个计算机程序可以看成是由一系列任务组成 的,任何一项任务如果过于复杂就将其分解成一系列较小的子任务,直至每一项任务都很小,很容易解决。,1.2 面向过程的程序设计,计算每门课的平均成绩,1.2 面向过程的程序设计,不足: 1、结构化编程将数据和过程相分离; 2、结构化编程对代码重用支持不够。 可重用思想就是创建一些已知属性的组件,然后插入到自己的程序中。,1.3 面向对象的程序设计方法,程序设计方法的发展历程 面向对象的方法,封装:将数据及对数据的操作方法封装在一起,作为一个相互依存、不可

5、分离的整体对象。 抽象:对同类型对象抽象出其共性,形成类。 消息隐藏:类通过一个简单的外部接口,与外界发生关系。 消息传递:对象与对象之间通过消息进行通讯。,面向对象的方法,对象和类,属性 (Property) 尺寸、外形、表面、 方法 (Method) 制作、出售、 对“切”的处理、 事件 (Event) 切、,对象:一块蛋糕,类 (Class):蛋糕类,面向对象的基本概念 对象,一般意义上的对象: 是现实世界中一个实际存在的事物。 可以使有形的(比如一辆汽车),也可以是无形的(比如一项计划)。 是构成世界的一个独立单位,具有: 静态特征(属性):可以用某种数据来描述 动态特征(操作):对象

6、所表现的行为或具有的功能,面向对象的方法,面向对象的基本概念 类,分类人类通常的思维方法 分类所依据的原则抽象 忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。 例如,石头、树木、汽车、房屋等都是人们在长期的生产和生活实践中抽象出的概念。,面向对象的方法,公孙龙的“白马非马”,故事是春秋时的公孙龙先生说的。 城门上告示:“马匹不得入城”。公孙龙同志骑白马而来,遭拒入。公孙龙一脸正色:“告示上写的是马,而我骑的是白马,难道 马等于 白马吗?” 守门士兵觉得白马还真不是马,于是放行。 依公孙龙先生的理论认为:如果白马

7、是马,黑马也是马,那么岂不白马等于黑马,所以,不能说白马是马。“白马非马”是中国哲学史上的一桩公案。 不过,若是我们从程序的角度上说,可以认为:马在这里表示一种类型,而白马,黑马它们的类型都是马。 白马,黑马具有相同的“数据类型”,但它们都相对独立的个体。从这点说,别说有白黑之分,就算同样是白马,这一匹和哪一匹白马,也是相对独立的个体。 在程序中,“类型”和“变量”的关系正是“马”和“白马”的关系。 如果C或C+有这种数据类型: Horse,那么,定义一匹“白马”的变量应该这样: Horse AWhiteHorse;,面向对象的基本概念 继承(类型关系),继承对于软件复用有着重要意义,是面向对

8、象技术能够提高软件开发效率的重要原因之一。 定义:特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。 例如:将轮船作为一个一般类,客轮便是一个特殊类。,面向对象的方法,类的继承和派生,“蛋糕类”派生“生日蛋糕类”,“蛋糕类”是“生日蛋糕类”的基类,“生日蛋糕类”是“蛋糕类”的派生类 “生日蛋糕类”继承“蛋糕类”,属性: 贺词、 方法 装饰、,面向对象的基本概念多态性,多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。 例如: 数的加法 -实数的加法 -复数的加法,面向对

9、象的方法,程序设计方法的发展历程 面向对象的方法,优点: 程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。 通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。,面向对象的方法,面向过程与面向对象程序设计,是一种数学思维或计算机思维方法,与人们认识世界的方法不同 以不稳定的、多变的“过程”和“操作” 为中心来构造系统 可重用性较差,是建立在认识方法学基础上的一项技术科学,比较自然地模拟了人类认识客观世界的方式; 以相对稳定的“对象”和“数据结构”为中心来构造系统 可重用性较好,面向过程程序设计,面向对象程序设计,练习设计方法,第一步:分析、归

10、纳、生成对象,第二步:用对象集成系统,筹办宴会项目,安排制作食物、布置装饰品、邀请宾客、,1.4 程序设计语言的发展,机器语言 简单的“0”和“1”的组合,硬件相关。 汇编语言 将机器语言映射为一些可以被人们读懂的助记符,如“ADD”、“SUB”等,与硬件相关。 高级语言 接近自然语言,与硬件无关。,例子,例子,例子:考点 *,对比举例机器语言,问题:A=1,B=2 ,求C=A+B 的值 11000111 01000101 11111100 00000001 令A=1 11000111 01000101 11111000 00000010 令B=2 10001011 01000101 1111

11、1100 将B放入eax累加器 00000011 01000101 11111000 将A与累加器中数加 10001001 01000101 11110100 将累加器中数放入C中,机器语言是针对特定型号计算机的语言,执行效率最高,但是不便于记忆。阅读和书写。-第一代语言,对比举例汇编语言,问题:A=1,B=2 ,求C=A+B 的值 Mov dword ptr ebp-4 ,1 令A=1 Mov dword ptr ebp-8 ,2 令B=2 Mov eax,dword ptr ebp-4 将B放入eax累加器 Add eax, dword ptr ebp-8 将A与累加器中数加 Mov dw

12、ord ptr ebp-0ch ,eax 将累加器中数放入C中,汇编语言用来编写直接控制机器操作的低层程序,与机器密切相关,移植性不好,效率高。-第二代语言,对比举例高级语言,问题:A=1,B=2 ,求C=A+B 的值 A=1 B=2 C=A+B,高级语言与硬件结构和指令系统无关,可读性、可维护性好,执行速度慢,编写访问硬件资源的系统软件较难。-第三代语言,1.4.2 C+的诞生,C语言之父dennis Ritchie,The C Programming Language,1.4 C+的诞生,C+之父 Bjarne stroustrup,The C + Programming Language

13、,1.4 C+的诞生,C+语言是从C语言发展演变而来。C+包含了整个C,C是建立C+的基础。C+包含C的所有特征、属性、优缺点,并添加了面向对象的支持。,C+语言,C语言,面向对象,1.5 程序开发过程,源程序:.cpp compile(Ctrl+F7) 目标程序:.obj Build(F7) 可执行程序:.exe,本书采用VC+6.0集成开发环境,1.6 简单的C+程序,1.6 简单的C+程序,/* 程序文件:ch1_1.cpp 程序功能:在屏幕上输出hello world! 作 者:XXX 创建时间:XX年XX月XX日 */ #include using namespace std; vo

14、id main() cout“Hello World!“endl; ,1.6 简单的C+程序,“注释” 是程序员为读者作的说明,用来提高程序的可读性,C+程序在编译过程中忽略注释。 1、“/” 用来注释一行说明,在“/”之后的文字直到换行都为注释。一般用来对于程序中难懂的代码进行说明。 2、 “/*”和“*/” 用来注释一段说明,在“/*”和“*/”之间的部分,不管多长都为注释。,1.6 简单的C+程序,所有以“#”开头的代码,称为编译预处理。 #include 每次启动编译器时,先运行预处理器,预处理器找到所有以“#”开头的代码行进行处理。include是一条预处理指令,意思是“后面跟的是一

15、个文件名,请找到该文件并将其加入。” iostream是系统定义的一个“头文件”,它设置了C+的I/O相关环境,并定义了输入输出流对象cout和cin等。,1.6 简单的C+程序,using namespace std; 1998年批准的标准C+使用namespace命名空间标准。iostream是一个标准函数库,cout是标准库函数提供的一个对象,标准库函数在namespace说明书中被指定为“std”。因此这句代码的意思是使用标准命名空间std中的函数。,1.6 简单的C+程序,正式的程序从代码“void main()”开始,它包含一个名为main()的函数,也称为主函数。每个C+程序有且仅有一个main()函数,程序在开始运行时会自动调用main()函数。 main()前面的void表示函数的返回值的类型,意味着程序执行结束后无需向操作系统返回。 所有的函数都以左大括号开始,右大括号结束,在大括号之间的部分称为函数体。,函数:是指能实现一个或多个功能的代码块。,1.6

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

当前位置:首页 > 大杂烩/其它

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