欢迎来到天天文库
浏览记录
ID:50307904
大小:606.50 KB
页数:76页
时间:2020-03-07
《Visual C++程序设计 教学课件 作者第七章 类与对象.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1目录7.1面向对象程序设计概念7.2类7.3对象7.4构造函数和析构函数7.5内联函数7.6静态成员7.7对象数组和对象指针7.8友元27.1面向对象程序设计概念1.面向过程的程序设计面向过程的程序设计方法是一种面向数据/过程的设计方法,它把数据和过程分离为相互独立的实体,程序员在编程时必须时刻考虑所要处理的数据的格式。对于不同的数据格式即便要做同样的处理或对相同的数据格式要做不同的处理都需要编写不同的程序。因此面向过程的程序的可重用性不好。另一方面,当数据和过程相互独立时,总存在着用错误的数据调用正确的程序模块或用正
2、确的数据调用了错误的程序模块的可能。37.1面向对象程序设计概念2.面向对象的程序设计面向对象设计方法追求的是现实问题空间与软件系统解空间的近似和直接模拟。它希望用户用最小的气力,最大限度地利用软件系统来求解问题。相对于面向过程的程序设计,它是一种基于结构分析的,以数据为中心的程序设计方法。面向对象的思想是把世界看成是由具有独立行为能力的各种对象组成,所有对象都有其自身的特性及相关行为。在面向对象的程序中,活动的基本单位是对象,对象之间的相互作用通过消息的传递来实现。面向对象设计方法具有许多良好的特点。(1)模块性。对象
3、是一个功能和数据独立的单元,互相之间只能通过对象认可的途径进行通信,相互没有预料不到的影响,也可以较为自由地为各个不同的软件系统所用。47.1面向对象程序设计概念2.面向对象的程序设计(2)封装功能。为信息稳蔽提供具体的实现手段。用户不必清楚对象的内部细节,只要了解其功能描述就可以使用。(3)代码共享。继承性提供了一种代码共享的手段,可以避免重复的代码设计,使得面向对象的方法确实有效。(4)灵活性。对象的功能执行是在消息传递时确定的,支持对象的主体特征,使得对象可以根据自身的特点进行功能实现,提高了程序设计的灵活性。(5
4、)易维护性。对象实现了抽象和封装,使其中可能出现的错误限制在自身,不会向外传播,易于差错和修改;(6)增量型设计。通过继承机制不断扩充功能,而不影响原有软件的运行。57.1面向对象程序设计概念3.面向过程的程序设计与面向对象的程序设计比较(1)面向过程的程序设计强调了功能抽象和模块性,它将解决问题的过程看作是一个处理过程,而面向对象的程序设计则综合了功能抽象和数据抽象,它将解诀问题看作是一个分类演绎过程。(2)模块与对象。面向对象的程序设计中的模块是对功能的抽象,每个模块都是一个处理单位,它有输入和输出,而面向对象的程序
5、设计中的对象是包括数据和操作且整体是对数据和功能的抽象和统一。可以这么说对象包含了模块概念。67.1面向对象程序设计概念3.面向过程的程序设计与面向对象的程序设计比较(3)过程调用与消息传递。在面向过程的程序设计中,过程为一独立实体,显式地为它的使用者所见。而在面向对象的程序设计中,方法是隶属于对象的,它不是独立存在的实体,而是对象的功能体现。消息传递机制很自然地与分布式并行程序、多机系统和网络通信模型取得了一致。(4)过程调用所涉及到的过程及函数都属于同一个程序实体,无论它们是以一个文件还是以多个文件存放。而不同对象间
6、的消息传递则是不同程序实体之间的交互与协作。可以这样说,面向对象设计中的程序实体是松耦合的,而传统设计中的程序实体是紧耦合的。77.1面向对象程序设计概念3.面向过程的程序设计与面向对象的程序设计比较(5)类型与类。类型与类都是对数据和操作的抽象,即定义了一组具有共同特征的数据和可以作用于其上的一组操作,但是类型仍然是偏重于操作抽象的,而类是集成数据抽象和操作抽象的,二者缺一不可。同时,类引入了继承性质,实现了代码的重用性和可扩充性。(6)静态组建与动态组建。从程序设计的发展来看,用户对灵活性和方便性的要求不断增强,所以
7、动态组建代替静态组建是必然趋势。尽管动态组建会影响执行的速度,但计算机硬件速度的提高弥补了动态组建的低效性。显然,面向对象在这一方面与面向过程设计相比占有优势。87.2类1.类的声明1)类声明的格式class<类名>{private:<私有的数据成员和成员函数>;public:<公有的数据成员和成员函数>;protected:<受保护的数据成员和成员函数>;}97.2类1.类的声明2)类声明举例#includeclassCdate//声明类{private://声明私有成员intyear,mont
8、h,day;public://声明公有成员voidSetDate(inty,intm,intd)//设置日期函数{year=y;month=m;day=d;}107.2类1.类的声明2)类声明举例voidOutDate()//输出日期函数{cout<
此文档下载收益归作者所有