




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子科技大学计算机学院 1 早期早期:机器语言、汇编语言:机器语言、汇编语言 5050年代中期年代中期:FORTRAN语言引进了许多现语言引进了许多现 代仍然使用的程序设计概念。代仍然使用的程序设计概念。 5050年代后期年代后期:ALGOL60提出块结构的思想。提出块结构的思想。 6060年代年代:SIMULA67首先提出对象和类的概首先提出对象和类的概 念,并支持类的继承,是面向对象语言的鼻祖念,并支持类的继承,是面向对象语言的鼻祖 7070年代年代:ADA不能全面地支持继承,称为基不能全面地支持继承,称为基 于对象的语言。于对象的语言。 后来出现的后来出现的SmalltalkSmallt
2、alk是最有影响的面是最有影响的面 向对象的语言之一。向对象的语言之一。 8080年代中后期以后,随着面向对象的年代中后期以后,随着面向对象的 程序设计语言的广泛应用,出现了更多的程序设计语言的广泛应用,出现了更多的 面向对象的语言。面向对象的语言。 面向对象的语言可分为以下两类:面向对象的语言可分为以下两类: ObjectC Eiffel Smalltalk80 称为混称为混 合型语言,其代表有合型语言,其代表有C+语言。语言。 支持传统的面向过程的程序设计支持传统的面向过程的程序设计 C+ C+ C+ 语言具有语言具有C C语言的丰富的应用基础和开发语言的丰富的应用基础和开发 环境的支持,
3、对于已经掌握环境的支持,对于已经掌握C C语言的人讲,更语言的人讲,更 易学易普及。易学易普及。 二、从二、从C到到C+ C语言是贝尔实验室为语言是贝尔实验室为DEC公司开发公司开发PDP 系列计算机操作系统时研制的。系列计算机操作系统时研制的。 C作为作为UNIX操作系统的开发语言而广为应用操作系统的开发语言而广为应用 和流行。和流行。1989年制定为年制定为ANSI C标准。标准。 1、语言简洁、紧凑,使用方便、灵活。、语言简洁、紧凑,使用方便、灵活。 2、运算符和数据类型丰富。、运算符和数据类型丰富。 3、访问内存地址、寄存器、进行位操作,、访问内存地址、寄存器、进行位操作, 具有汇编语
4、言的功能。具有汇编语言的功能。 4、生成的目标代码质量高、程序运行效率高。、生成的目标代码质量高、程序运行效率高。 C语言的独有特点是:语言的独有特点是: 局限:局限: 1、对类型的检查机制相对较弱、程序中的、对类型的检查机制相对较弱、程序中的 一些错误不能在编译时发现;一些错误不能在编译时发现; 2、无支持代码重用的语言结构;、无支持代码重用的语言结构; 3、当程序规模达到一定的程度时,难以控、当程序规模达到一定的程度时,难以控 制程序的复杂性;制程序的复杂性; 为满足管理程序复杂性需要,为满足管理程序复杂性需要,1980年,贝年,贝 尔实验室对尔实验室对C进行了改进和扩充:进行了改进和扩充
5、: “带类的带类的C” C 1983年取名为年取名为C+,后经过三次修订。,后经过三次修订。 1994年制定了年制定了ANSI C+标准的草案。标准的草案。 1、C+是是C的扩展,的扩展,C是是C+的子集,的子集,C+ 包包 括括C的全部特征、属性和优点。同时,增加了对的全部特征、属性和优点。同时,增加了对 面向对象编程的完全支持。面向对象编程的完全支持。 2、与、与C 一致,一致, C+程序结构采用函数驱动机程序结构采用函数驱动机 制实现。制实现。 3、C+实现了类的封装,数据隐藏、继承及实现了类的封装,数据隐藏、继承及 多态,使其代码可重用并容易维护。多态,使其代码可重用并容易维护。 4、
6、C+是一门高效使用的程序设计语言,既是一门高效使用的程序设计语言,既 可进行过程化程序设计,又可进行面向对象程可进行过程化程序设计,又可进行面向对象程 序设计。序设计。 在在面向过程的程序设计中,面向过程的程序设计中,程序是处理数程序是处理数 据的一系列过程。过程(或函数)定义为实据的一系列过程。过程(或函数)定义为实 现特定功能的一组指令。现特定功能的一组指令。 其主要设计思想是功能分解并逐步求精。其主要设计思想是功能分解并逐步求精。 数据与程序过程分开存储,编程的主要技巧数据与程序过程分开存储,编程的主要技巧 在于关注模块之间的调用关系及数据的变化。在于关注模块之间的调用关系及数据的变化。
7、 1.2 1.2 面向过程的程序设计面向过程的程序设计 1、当数据量增大时,数据与处理这些数、当数据量增大时,数据与处理这些数 据的方法之间的分离使程序变得越来越难以据的方法之间的分离使程序变得越来越难以 理解。理解。 2、相对于老问题的新方法都要带来额外、相对于老问题的新方法都要带来额外 的开销,程序的可重用性小。的开销,程序的可重用性小。 面向过程程序设计的面向过程程序设计的主要缺点主要缺点 面向对象程序设计面向对象程序设计 OOP (Object-Oriented Object-Oriented ProgrammingProgramming)的的三要素三要素: 对象、类和继承对象、类和继
8、承 面向对象程序设计的实现需要面向对象程序设计的实现需要: 封装和数据隐藏技术封装和数据隐藏技术 继承和多态性技术继承和多态性技术 什么是对象?什么是对象? 概念上:在问题空间中,将客观世界的实概念上:在问题空间中,将客观世界的实 体称为对象。对象可以是人、物、事件、规则、体称为对象。对象可以是人、物、事件、规则、 概念等。概念等。 例如:开发一个商品销售系统。例如:开发一个商品销售系统。 实现上:把数据和处理数据的过程(操作实现上:把数据和处理数据的过程(操作 或方法)当成一个整体,这个封装体就称为对或方法)当成一个整体,这个封装体就称为对 象。象。 数据数据1 . 数据数据n 操作操作1
9、. 操作操作n 状态状态 (数据结构和值)(数据结构和值) 方法方法 对象的模型结构 例如:电脑装配声卡,早点销售点例如:电脑装配声卡,早点销售点 无须知道封装体内部是如何工作就能使用的无须知道封装体内部是如何工作就能使用的 思想称为数据隐藏。思想称为数据隐藏。 对象实现了信息隐藏;对象实现了信息隐藏; 对象与外部通过操作接口联系,操作接口提对象与外部通过操作接口联系,操作接口提 供了对象的功能,操作的具体实现外部是不可供了对象的功能,操作的具体实现外部是不可 见的。见的。 对象之间是通过消息传递信息。对象之间是通过消息传递信息。 对象是由特定的类创造的,什么是类?对象是由特定的类创造的,什么
10、是类? 类是创建对象的样板,它包含着所创建对象类是创建对象的样板,它包含着所创建对象 的状态描述和方法的定义。的状态描述和方法的定义。 由一个特定的类所创建的的对象也称为由一个特定的类所创建的的对象也称为 这个类的实例。这个类的实例。 一个类的所有对象都有相同的数据结构,一个类的所有对象都有相同的数据结构, 并且共享相同的实现操作的代码,而各个对并且共享相同的实现操作的代码,而各个对 象又有具体的不同的状态。类和对象类似于象又有具体的不同的状态。类和对象类似于 面向过程语言中数据类型和变量。面向过程语言中数据类型和变量。 例如:学生类和某个学生对象。例如:学生类和某个学生对象。 2、继承和重用
11、、继承和重用 制造一种新型号的电视机可以有两种选择:制造一种新型号的电视机可以有两种选择: 1)从草图开始重新设计)从草图开始重新设计 2)对现有型号加以改进(继承和重用)对现有型号加以改进(继承和重用) C+采用继承机制支持重用,不仅可重用具采用继承机制支持重用,不仅可重用具 有特定功能的类,而且继承可以由已有的类有特定功能的类,而且继承可以由已有的类 创造新的类。创造新的类。 新类共享已有类的属性,自己还具有额外新类共享已有类的属性,自己还具有额外 添加的属性,新类是从已有类派生的,称为派添加的属性,新类是从已有类派生的,称为派 生类或子类,已有类称为父类或基类。生类或子类,已有类称为父类
12、或基类。 在客观世界中,存在着整体和部分的关系、在客观世界中,存在着整体和部分的关系、 一般和特殊的关系,继承将后者模型化。一般和特殊的关系,继承将后者模型化。 汽车类,汽车类, 各类汽车各类汽车 昆虫类,昆虫类, 各类昆虫各类昆虫 3、多态性、多态性 封装性、继承性、多态性是构成面向对象封装性、继承性、多态性是构成面向对象 程序设计的三大特征。程序设计的三大特征。 封装性是基础封装性是基础 继承性是关键继承性是关键 多态性是补充多态性是补充 什么是多态性?什么是多态性? 多态是指一个名字有多种语义,或一个相多态是指一个名字有多种语义,或一个相 同界面有多种实现;同界面有多种实现; 或是指发出
13、同样的消息被不同类型的对象或是指发出同样的消息被不同类型的对象 接受而导致完全不同的行为。即对象根据所接受而导致完全不同的行为。即对象根据所 接收到的消息做出相应的操作。接收到的消息做出相应的操作。 例如:在学籍管理系统中例如:在学籍管理系统中 学生类(基类)学生类(基类) 计算成绩的操作计算成绩的操作 中学生类(派生类)中学生类(派生类) 计算成绩的操作计算成绩的操作 大学生类(派生类)大学生类(派生类) 计算成绩的操作计算成绩的操作 又如:在绘图系统中使用的多态性。又如:在绘图系统中使用的多态性。 函数重载和运算符重载表现了最简单的多态性。函数重载和运算符重载表现了最简单的多态性。 函数重
14、载:函数重载: Void f(int,int,char); Void f(char,float); Void f(int,int); Void f(int,float); 运算符重载:运算符重载: 为运算符为运算符+ - * / 等赋以新的含义,以等赋以新的含义,以 实现类对象的运算。实现类对象的运算。 编译错编译错 连连 接接 编编 辑辑 编编 译译 运运 行行 连接错连接错 运行错运行错 Y Y Y N N N 完完 成成 #include文件文件 C+库文件库文件 .CPP 源程序源程序 .obj目标程序目标程序 .exe 可执行程序可执行程序 #include文件文件 例例1: /*
15、/*ch1.1.cpp* /* # include void main( ) cout “I am a student.n”; 1.5 1.5 最简单的程序最简单的程序 运行结果为:运行结果为: I am a student. /* ch1.2.cpp * #include void main( ) int a,b,result; cout a b; result=3*a-2*b+1; cout “Result is ” resultch1.2 Please input two numbers: 100 50 Result is 201 C+程序是由函数构成的,由一个主函数和若干程序是由函数构成的,由一个主函数和若干 个函数构成。个函数构成。 C+程序是函数驱动的。程序是函数驱动的。 例例3: /*ch1.3.cpp* #include #include double max(doubl x, doubl y); void main( ) double a, b, c; cout “Input two numbers:n”; c=max(a,b); cout “The squart o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗器械行业中的品牌建设与市场定位
- 医疗器械技术进步对商业发展的影响
- 医疗行业中的科技力量-探讨移支动技术在健康教育中的应用
- 利用区块链进行精确控制优化医疗资源供应链管理的路径研究
- 2025年生产部工作年度总结模版
- 医疗健康产业中的大数据与人工智能
- 医疗大数据分析在疾病预防中的价值
- 企业食堂供货合同范例
- 以环保为目标创新型医院的设计与实施
- 供销合同范例6
- Excel高效办公应用与技巧知到智慧树章节测试课后答案2024年秋四川职业技术学院
- 数字化赋能应用型高校实践教学改革研究
- 《前列腺癌筛查及治疗的临床研究进展》
- 11.5 歌曲《卖报歌》课件(14张)
- 2024年新疆中考数学试卷(含答案解析)
- 员工突发疾病应急预案
- 7分析一个实际的环境问题课件科学五年级下册教科版
- 小学英语语法专题训练:名词所有格(含答案)
- 2023年全国职业院校技能大赛-直播电商赛项规程
- DL∕T 5161.5-2018 电气装置安装工程质量检验及评定规程 第5部分:电缆线路施工质量检验
- 绿化养护服务投标方案(技术标)
评论
0/150
提交评论