当前位置:文档之家› c++面向对象程序设计第4章 面向对象程序设计概述

c++面向对象程序设计第4章 面向对象程序设计概述

Windows SDK曾是早期开发Windows应用程序的重要工 具。但这似乎还比较“原始”,还远不能简化Windows应用程 序开发的繁重工作。但SDK中的文档是十分有价值的,它们是 公开的Windows最全面的技术资料。可以说,SDK与这些产品 的最主要的差别就是C与C++的差别。
思考与练习
4.2 Windows用户界面对象
1.窗口
边框
活动窗口
典型窗口
2.系统菜单
系统菜单
3.标题栏
标题栏
4.菜单栏
菜单栏
5.工具条 6. 客户区
工具条
客户区
7.垂直滚动条和水平滚动条 8.状态栏 9.图标 10.光标 11.插入符
12.对话框
4.3 Windows的编程特点
(3)继承和重用
继承,是一种连接类的层次模型,提供了一种表述共性的方法。 新的类可以从现有的类中派生,派生类的对象可以继承现有类的属性 与操作,也可以修改或增加新的操作。 新类继承了原来类的特性,新类称为原来类的派生类(子类), 原来类称之为心类的基类(父类)。派生类可以从基类那里继承方法 和成员变量,当然也可以对之进行修改或者增加新的方法使之更加适 合特殊的需要。这也体现了客观世界中一般与特殊的关系。继承实现 了代码的可重用性和软件的复用性。 (4)多态性 多态性是指类中具有相似功能的不同函数使用同一个名称来使用, 允许不同的类的对象对同一个消息作出不同的响应。允许将派生类的 对象当作基类的对象使用。多态性提高了代码的可重用性和可扩展性。
第4章 面向对象程序设计概述
本章系统介绍面向对象程序设计的概念和方法、面向对象程序设计语 言的特点、Windows用户界面对象及Windows的编程特点,使读者初步具备 面向对象程序设计的能力和Windows编程基础。
4.1 面向对象程序设计来自4.2 Windows用户界面对象
4.3 Windows的编程特点
1.面向对象的编程思想
那么什么是面向对象的编程呢?
面向对象的编程方法是一种新的设计和构造软件的思维方法,
该方法的目标是使程序员在计算机上解决问题的方式更加类似
于人类活动。它认为世界是由一些能独立处理内部事务的实体 即对象构成,而程序中的对象就是对现实世界中对象的映射。 程序员的主要任务就是对这些对象进行处理。面向对象的编程 方式让程序员将工作分成几个部分,这些部分称为类,每一个 类对自己的行为负责。
1.面向对象方法的由来
面向对象程序设计(Object-Oriented Programming)是在抽象数据 类型和交互式环境的基础上产生的。首先,它将数据及对数据的操作方法 放在一起,作为一个相互依存、不可分割的整体——对象。对同类型的对 象抽象出其共性,形成类。
2.面向对象方法
面向对象程序设计语言以面向对象的方法,也可以说,是以客观世界的 思维方式来看待事物。客观世界由各种事物来组成,每一个事物在面向对 象程序设计语言中称为对象,具有相似特性的对象放在一起,称为类。客 观世界的对象可以用“特性+行为”这种方式来描述,对象除了具有本身的 属性外,还会与外界进行交互,对外界的信息会有相应的行为,或者改变 自己的性质。在面向对象程序设计里,一个程序就是一组相互通讯的对象。 面向对象程序设计就完成了对客观世界实际模型的抽象,使设计出来的程 序代码更易理解。 面向对象程序设计的思想是,将数据和数据对应的操作放在一起,作为 对象;对类型相同的对象抽象出共性,作为类;类中的数据只能采用本类 的方法进行操作;类通过外部接口与外界进行信息交互。
5.数据交换和共享
Windows提供了多种手段进行数据交换和共享,这些交换和共享一般发生在 应用程序之间。这些手段包括剪贴板、动态数据交换(DDE)、动态数据链接 (DLL)、插入和链接(OLE)以及ActiveX等。 ☼ 剪贴板是共享数据内存块的管理器,应用程序既可以向其中写入数据,也可以从 其中读出数据。利用剪贴板,可以实现在应用程序内部或是应用程序之间的数据交换。
2.Windows SDK
在Windows应用程序开发的早期还有Windows SDK。 Windows SDK包含以下内容: (1)一些介绍如何开发Windows应用程序的文档。 (2)关于所有公开的Windows API函数、消息、结构、宏及资 源的详细说明。 (3)提供给传统的C/C++开发工具开发Windows应用程序所必 需的以组头文件和库文件。 (4)一些传统C/C++开发工具所没有的,而开发Windows应用 程序所必需的编译和连接工具(比如资源编译器,能够连接 Windows应用程序的连接程序)。 (5)其他一些辅助工具,比如对话框编辑器和图像编辑器。 (6)一些Windows引用程序示例代码。
建的数据(称为对象),同在另一个软件里创建的数据进行嵌入、链接操作。一个对 象的数据有多种类型,比如一幅图、声音文件、一段视频图像或是一张电子表格。 ☼ ActiveX是一种协议,它实际上是DLL的一种。
6.与设备无关的图形接口
Windows提供了丰富的、与设备无关的图形处理功能。应用程序可以很方便 地画出各种图形而不必直接与具体的输出设备打交道。由于Windows提供的设备 无关性,因此在应用程序中可以使用同一函数在打印机上或是显示器上输出同一个 图形。 Windows并不直接访问图形显示设备,而是通过其图形设计语言(图形设备 接口,即GDI)来实现图形输出。Windows应用程序的输出可以在任何显示或是打 印设备中,只要在Windows上安装有该设备的驱动程序即可。
在Windows 核心中有三个动态链接库构成了Win32 API的主体: (1)USER32.DLL 负责窗口管理,包括消息、菜单、光标、通信、 计时器和其他控制显示窗口的函数。 (2)GDI32.DLL 图形设备接口,它管理用户界面的生成和图形绘 制,主要包括设备描述表、字体、位图等。 (3)KERNEL32.DLL Windows的核心,它管理内存调度、进程调 度等低层功能。
1.Windows的编程特点有哪些?
2.Windows支持哪些用户界面对象?
3.简述面向对象编程的基本思想。
4.高效的内存管理
措施: ☼ ☼ ☼ 当一个程序运行同一应用程序的多个拷贝时,每个拷贝使用相同 Windows环境中分配的内存块多数是可移动的,从而便于 代码段和程序资源通常都是视需要而被装入内存的,而且在多数
的代码段和相同的资源;
Windows对内存的管理和提高资源的利用率;
情况下分配可丢弃的内存,在内存资源紧张时,这种内存可以被丢弃 而释放所占用的内存空间,当再次需要时,Windows可以自动在磁盘 上复制相应的内容到内存中来。
4.4 应用程序设计接口和开发工具包
4.1 类与对象的定义
面向对象的编程语言和以往的各种编程语言的根本不同在 于,它设计的出发点就是为了能更直接的描述客观世界中存在 的事务(即对象),以及它们之间的关系。 开发设计一个软件的目的是为了解决相应的问题,这些问 题所涉及的范围称为问题域。面向对象编程语言将客观事物看 作具有属性和行为的对象,通过抽象找出统一类对象的共同属 性(静态特性)和行为(动态特性),形成类。通过类的继承 与多态可以很方便的实现代码的重用,大大的缩短了软件开发 周期,并使软件的风格统一起来。
3. 面向对象程序设计的特点
在前面我们学C++的时候,已经提到了面向对象程序设计所具有的一 些特点了,可以总结为:抽象、封装、继承与重用、虚函数与多态性。 (1)抽象 抽象,是忽略与所处理的问题无关或非本质的信息,以充分的注 意与当前目标有关的特征。比如要做一个学生在图书馆借书情况管理 系统,我们只需知道学生的学号,姓名,性别,以及所借书的名称, 借书时间,归还时间等信息。抽象是设计程序的前提,可以使类的设 计更清晰,简单和便于实现。 (2)封装 封装,是把对象的属性和操作包装在一起,把对象的内部细节隐 藏起来,形成一个独立的抽象数据类型:类。
4.4 应用程序设计接口和开发工具包
1.Windows API
Windows API(Application Programming Interface应用程序 设计接口)是大量函数加上数字常量、宏、结构、类型以及其他相 关项的集合。可以从C++、汇编语言、Pascal、Fortran一起其它编 程语言中调用这些函数。 有人比喻API就相当于Windows应用程序编程中的汇编语言。 当前许多编程语言不仅支持Windows API,还将API包装起来,如 Visual C++的MFC、Delphi 、C++ Builder等都通过自己的函数、 类库来实现Windows API的功能,但其实质还是最终转化为API。
定义的消息名标志符,字参数和长参数是与消息号相关的值。例如,当光标在窗口
用户区时,我们敲击键盘时,由Windows向该窗口发送一个WM_CHAR的消息, 这个宏定义在Windows.h中定义。窗口接到该消息后,将进行相应的处理。 Windows应用程序创建的每一个窗口都有一个窗口函数,这个窗口函数,
2.消息驱动的程序结构
Windows消息提供了应用程序与应用程序之间和应用程序与Windows之间 进行通信的手段,几乎每个Windows程序所做的事情都是为了响应发送到窗口函 数的某条消息。在多数的应用程序中,很大一部分代码的内容都是处理这些消息的。 Windows的消息由三部分组成:消息号、字参数和长参数。消息号是预先
动态数据交换是一种数据交换的协议,通过应用程序之间的数据链接,使得应用程
序之间可以实现自动的数据交换,而不用用户的干预。 ☼ 动态数据链接是应用程序实现代码和资源共享的一种手段。在Windows环境下, 由于可以同时执行多个任务,使用DLL比使用静态链接库(LIB)具有更多的优点。

OLE是插入和链接,它是动态数据交换的增强功能,OLE能够把在一个软件中创
相关主题