电子科技大学计算机学院.ppt
上传人:天马****23 上传时间:2024-09-11 格式:PPT 页数:24 大小:206KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

电子科技大学计算机学院.ppt

电子科技大学计算机学院.ppt

预览

免费试读已结束,剩余 14 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

一、面向对象的方法是在计算机语言发展过程中产生的。早期:机器语言、汇编语言50年代中期:FORTRAN语言引进了许多现代仍然使用的程序设计概念。50年代后期:ALGOL60提出块结构的思想。60年代:SIMULA67首先提出对象和类的概念,并支持类的继承,是面向对象语言的鼻祖70年代:ADA不能全面地支持继承,称为基于对象的语言。二、从C到C++C语言是贝尔实验室为DEC公司开发PDP系列计算机操作系统时研制的。C作为UNIX操作系统的开发语言而广为应用和流行。1989年制定为ANSIC标准。局限:1、对类型的检查机制相对较弱、程序中的一些错误不能在编译时发现;2、无支持代码重用的语言结构;3、当程序规模达到一定的程度时,难以控制程序的复杂性;1、C++是C的扩展,C是C++的子集,C++包括C的全部特征、属性和优点。同时,增加了对面向对象编程的完全支持。2、与C一致,C++程序结构采用函数驱动机制实现。3、C++实现了类的封装,数据隐藏、继承及多态,使其代码可重用并容易维护。4、C++是一门高效使用的程序设计语言,既可进行过程化程序设计,又可进行面向对象程序设计。在面向过程的程序设计中,程序是处理数据的一系列过程。过程(或函数)定义为实现特定功能的一组指令。其主要设计思想是功能分解并逐步求精。数据与程序过程分开存储,编程的主要技巧在于关注模块之间的调用关系及数据的变化。1、当数据量增大时,数据与处理这些数据的方法之间的分离使程序变得越来越难以理解。2、相对于老问题的新方法都要带来额外的开销,程序的可重用性小。面向对象程序设计OOP(Object-OrientedProgramming)的三要素:对象、类和继承面向对象程序设计的实现需要:封装和数据隐藏技术继承和多态性技术例如:电脑装配声卡,早点销售点无须知道封装体内部是如何工作就能使用的思想称为数据隐藏。对象实现了信息隐藏;对象与外部通过操作接口联系,操作接口提供了对象的功能,操作的具体实现外部是不可见的。对象之间是通过消息传递信息。对象是由特定的类创造的,什么是类?类是创建对象的样板,它包含着所创建对象的状态描述和方法的定义。由一个特定的类所创建的的对象也称为这个类的实例。一个类的所有对象都有相同的数据结构,并且共享相同的实现操作的代码,而各个对象又有具体的不同的状态。类和对象类似于面向过程语言中数据类型和变量。例如:学生类和某个学生对象。2、继承和重用制造一种新型号的电视机可以有两种选择:1)从草图开始重新设计2)对现有型号加以改进(继承和重用)C++采用继承机制支持重用,不仅可重用具有特定功能的类,而且继承可以由已有的类创造新的类。新类共享已有类的属性,自己还具有额外添加的属性,新类是从已有类派生的,称为派生类或子类,已有类称为父类或基类。在客观世界中,存在着整体和部分的关系、一般和特殊的关系,继承将后者模型化。汽车类,各类汽车昆虫类,各类昆虫3、多态性封装性、继承性、多态性是构成面向对象程序设计的三大特征。封装性是基础继承性是关键多态性是补充什么是多态性?多态是指一个名字有多种语义,或一个相同界面有多种实现;或是指发出同样的消息被不同类型的对象接受而导致完全不同的行为。即对象根据所接收到的消息做出相应的操作。又如:在绘图系统中使用的多态性。函数重载和运算符重载表现了最简单的多态性。函数重载:Voidf(int,int,char);Voidf(char,float);Voidf(int,int);Voidf(int,float);运算符重载:为运算符+-*/等赋以新的含义,以实现类对象的运算。编译错例1://************************//*******ch1.1.cpp*********//************************#include<iostream.h>voidmain(){cout<<“Iamastudent.\n”;}C++程序是由函数构成的,由一个主函数和若干个函数构成。C++程序是函数驱动的。例3://*******ch1.3.cpp*********#include<iostream.h>#include<math.h>doublemax(doublx,doubly);voidmain(){doublea,b,c;cout<<“Inputtwonumbers:\n”;c=max(a,b);cout<<“Thesquartofmaximum=”<<sqrt(c);}doublemax(doublex,doubley){if(x>y)