Delphi 程序设计
与
数据库应用开发
面向对象的基本概念
对象是一种看问题的观点,
是对现实世界各种元素的一
种抽象 。 对象既含数据又含
功能, 因此具有自身处理数
据的能力 。 对象被认为是迄
今为止最接近真实事物的数
据抽象 。
目前的计算机功能很强 ( 尤其
是硬件 ), 但目前的计算机并不
很合理 。 最大的不合理是来自人
认识问题时的认识空间和计算机
处理问题时的方法空间的不一致,
人与目前的计算机之间仍存在着
较大的隔阂 。 而面向对象技术有
助于减小这一隔阂, 并使这两个
空间尽量趋于一致 。
计算机
机器语言
汇编语言
面向对象语言
过程语言
非过程语言
类与对象
现实世界中对象有两个共同的特点:
?一方面, 它们都有自己的状态,
如一台电视机有自己的摆放位置,
有关机和开机状态, 此刻正在播
放某一频道的电视节目等
?另一方面, 它们又都有自己的
行为, 如电视机的开机, 关机,
调台等 。
面向对象程序设计中的对象是现
实世界对象的模型化, 它同样具
有状态和行为 。
?对象的状态用属性来维护,
?对象的行为用方法来实现 。
因此可以简单地讲, 对象是面向
对象的程序设计模式, 它由描述
状态的属性 ( 变量 ) 和用来实现
对象行为的方法 ( 代码 ) 组成 。
相关对象的集合称为
,类 ( Class),
类是对象的抽象及描述, 它
是具有统一属性和方法的多
个对象的统一描述体, 是用
来定义一组对象共有属性和
方法的模板 。
类与对象的区别
?类是用来创建对象实例的样板,
它包含所创建对象的状态描述和
方法的定义 。 类是一个型
?而对象则是这个型的一个实例 。
进一步讲, 类是静态概念, 而对
象则是一个动态概念, 因为只有
在运行时才给对象分配空间, 对
象才真正存在 。
封装( Encapsulation)
软件工程 软件工程的
追求的目标是,原则是:
?可理解性
?可靠性
?可维护性
?模块化 (强内
聚与弱耦合)
?局部化(自洽
模块)
?信息隐藏
,封装, 是一种组织软件的方法 。
其基本思想是把客观世界中
联系紧密的元素及相关操作组
织在一起, 使其相互关系隐藏
在内部, 而对外仅仅表现为与
其他封装体间的接口 。 从而构
造出具有独立含义的软件实现 。
封装并不是一个新的概念, 但在面
向对象的程序设计中提出了一种全
新的封装方法 ── 对象 ( Object)
对象是按照封装的方法构造与
客观世界具体成分相对应的软件
模块。对象中所封装的是描述这
些客观世界具体成分的一组数据
(称为 对象的属性 )、及作用于
这些数据上的一组操作(称为成
员函数或 对象方法 )。
结构化程序设计将程序代
码和数据割裂开,
而面向对象的程序设计将
数据和对应的代码封装成
一个能动的整体 。
对象与类例
找出一篇文章不重复的单词数
?Set 实现一个对象类,它可保存一
个其他对象的集合
?String 实现另一个对象类,它可
保持一个字符串
Set uniquewords = new Set( ) ;
String word ;
while getword(buf) != eof
{ word = new String (buf) ;
uniquewords.add(word);
}
print uniquewords.size() ;
继承( Inheritance)
,类, 具有继承的功能。
如果 B类继承了 A类,我们就称 A类为父
类,B类为子类。
在一般情况下,要定义一个新类,只
需继承一个父类,再描述一下它与父
类的不同之处就行了。
继承性使得用户可以不必修改已有的
类,便可以在原有类的基础上定义自
己的新类。
例如一个操作是从另一个类
继承来的,这个操作的所有源
代码都不用重写。如果一个软
件系统的大部分都可以由可复
用的成分(如类库、组件等)
构成,那么开发中的大部分精
力就可以花在理解用户的要求
和解决系统中新的和特殊的部
分。
这种类的可继承性无疑是
程序设计思维上的一个创新
它体现出一般化与特殊化
的原则,减少了相似类的重
复说明,因而可大大减少了
代码和数据的重复编写,由
此实现了程序 代码的复用 。
面向对象程序设计的过程
就是利用已有的类来构造
新的类, 进而构造目标软
件的过程 。
所以提供一些定义好的类
供程序员使用是再次开发
的基础 。
类可以支持基于面向对象的程序设
计,使程序设计不必从零开始
在面向对象的程序设计中,如果不
是基于复用的思想,而仅仅是单纯
地用其程序结构进行软件开发,从
效率到质量的改善并不明显。
?子程序仅仅完成一个限定的功能,并不象
类那样具有强烈的复用色彩 。
?类库中的类据有一定的抽象性, 描述了
一类对象, 是数据和操作的统一体;而
子程序内涵较简单 。
?用户很难直接修改子程序;类可以继承
以满足用户特殊需求 。
?子程序仅利用参数的传递与外界发生联
系, 信息量有限;类则直接反映外界的
客体, 用私有部分刻划客体的特征, 而
公开部分与外界发生联系 。
类
库
与
子
程
序
库
与
Delphi与组件技术
基于组件的软件开发思想来自于
面向对象的程序设计理论,但又
是这一理论的发展。
组件技术是以二进制级提供规格
化的软件组件, 并以图标等可视
方式提供组件 。 由于能直观地理
解组件的功能与作用, 就有可能
将以最终用户为主导型的应用软
件开发引向成功 。
什么是 Delphi
?Delphi是面向对象的, 用于快速
应用开发的可视化编程环境
?使用对象 Pascal作为它的基本语
言 。
?Delphi可用来开发包括通用工具
到数据库访问的各种应用系统 。
集成开发环境 IDE
Integrated Development Environment
是提供设计, 运行和调试应用程序所需的
全部工具的一种环境, 并对这些工具提供
了很好的连接, 以减少程序开发的难度 。
?代码编辑器
?调试器
?工具栏
?图像编辑器
?数据库工具
这些工具协调操作、
相互补充、使复杂
的应用程序开发速
度更快,且不易出
错。
可视化编程
Delphi提供了一个丰富的可视组件库 VCL
- Visual Component Library)
VCL是由一些称作“组件”的预制对象所
组成
组件提供了可视设计应用程序的能力
快速应用开发 RAD
rapid application development
Delphi提供了一套快速应用开发设计
工具, 包括应用, 窗体, 菜单等模板及
编程向导 。 通过这些工具和 Delphi的本
地代码编译器, 你可以快速创建和测试
原型, 完成应用程序的开发 。
事件驱动
Delphi采用了事件驱动的程序运行机制
事件驱动则是模拟现实世界中对象之间
的信息传递和相互作用。当一个对象通过某
种方式发出一个信息给另一个对象时,一个
事件就发生了,就会触发一个事件处理程序
(如果编写了此事件处理程序))
因此 Delphi的程序结构很像是一套相互作
用的组件对象, 你所编写的代码本质上就是
把这些组件, 胶合, 在一块, 如同采用预制
构件盖房一样 。
组件
属性
状态描述 事件 — 用户的操作或系统中出
现的一些事情。
每个组件都有自
己能响应的事件
清单。
而响应事件的执
行代码就是事件
处理句柄方法
功能调用
与
数据库应用开发
面向对象的基本概念
对象是一种看问题的观点,
是对现实世界各种元素的一
种抽象 。 对象既含数据又含
功能, 因此具有自身处理数
据的能力 。 对象被认为是迄
今为止最接近真实事物的数
据抽象 。
目前的计算机功能很强 ( 尤其
是硬件 ), 但目前的计算机并不
很合理 。 最大的不合理是来自人
认识问题时的认识空间和计算机
处理问题时的方法空间的不一致,
人与目前的计算机之间仍存在着
较大的隔阂 。 而面向对象技术有
助于减小这一隔阂, 并使这两个
空间尽量趋于一致 。
计算机
机器语言
汇编语言
面向对象语言
过程语言
非过程语言
类与对象
现实世界中对象有两个共同的特点:
?一方面, 它们都有自己的状态,
如一台电视机有自己的摆放位置,
有关机和开机状态, 此刻正在播
放某一频道的电视节目等
?另一方面, 它们又都有自己的
行为, 如电视机的开机, 关机,
调台等 。
面向对象程序设计中的对象是现
实世界对象的模型化, 它同样具
有状态和行为 。
?对象的状态用属性来维护,
?对象的行为用方法来实现 。
因此可以简单地讲, 对象是面向
对象的程序设计模式, 它由描述
状态的属性 ( 变量 ) 和用来实现
对象行为的方法 ( 代码 ) 组成 。
相关对象的集合称为
,类 ( Class),
类是对象的抽象及描述, 它
是具有统一属性和方法的多
个对象的统一描述体, 是用
来定义一组对象共有属性和
方法的模板 。
类与对象的区别
?类是用来创建对象实例的样板,
它包含所创建对象的状态描述和
方法的定义 。 类是一个型
?而对象则是这个型的一个实例 。
进一步讲, 类是静态概念, 而对
象则是一个动态概念, 因为只有
在运行时才给对象分配空间, 对
象才真正存在 。
封装( Encapsulation)
软件工程 软件工程的
追求的目标是,原则是:
?可理解性
?可靠性
?可维护性
?模块化 (强内
聚与弱耦合)
?局部化(自洽
模块)
?信息隐藏
,封装, 是一种组织软件的方法 。
其基本思想是把客观世界中
联系紧密的元素及相关操作组
织在一起, 使其相互关系隐藏
在内部, 而对外仅仅表现为与
其他封装体间的接口 。 从而构
造出具有独立含义的软件实现 。
封装并不是一个新的概念, 但在面
向对象的程序设计中提出了一种全
新的封装方法 ── 对象 ( Object)
对象是按照封装的方法构造与
客观世界具体成分相对应的软件
模块。对象中所封装的是描述这
些客观世界具体成分的一组数据
(称为 对象的属性 )、及作用于
这些数据上的一组操作(称为成
员函数或 对象方法 )。
结构化程序设计将程序代
码和数据割裂开,
而面向对象的程序设计将
数据和对应的代码封装成
一个能动的整体 。
对象与类例
找出一篇文章不重复的单词数
?Set 实现一个对象类,它可保存一
个其他对象的集合
?String 实现另一个对象类,它可
保持一个字符串
Set uniquewords = new Set( ) ;
String word ;
while getword(buf) != eof
{ word = new String (buf) ;
uniquewords.add(word);
}
print uniquewords.size() ;
继承( Inheritance)
,类, 具有继承的功能。
如果 B类继承了 A类,我们就称 A类为父
类,B类为子类。
在一般情况下,要定义一个新类,只
需继承一个父类,再描述一下它与父
类的不同之处就行了。
继承性使得用户可以不必修改已有的
类,便可以在原有类的基础上定义自
己的新类。
例如一个操作是从另一个类
继承来的,这个操作的所有源
代码都不用重写。如果一个软
件系统的大部分都可以由可复
用的成分(如类库、组件等)
构成,那么开发中的大部分精
力就可以花在理解用户的要求
和解决系统中新的和特殊的部
分。
这种类的可继承性无疑是
程序设计思维上的一个创新
它体现出一般化与特殊化
的原则,减少了相似类的重
复说明,因而可大大减少了
代码和数据的重复编写,由
此实现了程序 代码的复用 。
面向对象程序设计的过程
就是利用已有的类来构造
新的类, 进而构造目标软
件的过程 。
所以提供一些定义好的类
供程序员使用是再次开发
的基础 。
类可以支持基于面向对象的程序设
计,使程序设计不必从零开始
在面向对象的程序设计中,如果不
是基于复用的思想,而仅仅是单纯
地用其程序结构进行软件开发,从
效率到质量的改善并不明显。
?子程序仅仅完成一个限定的功能,并不象
类那样具有强烈的复用色彩 。
?类库中的类据有一定的抽象性, 描述了
一类对象, 是数据和操作的统一体;而
子程序内涵较简单 。
?用户很难直接修改子程序;类可以继承
以满足用户特殊需求 。
?子程序仅利用参数的传递与外界发生联
系, 信息量有限;类则直接反映外界的
客体, 用私有部分刻划客体的特征, 而
公开部分与外界发生联系 。
类
库
与
子
程
序
库
与
Delphi与组件技术
基于组件的软件开发思想来自于
面向对象的程序设计理论,但又
是这一理论的发展。
组件技术是以二进制级提供规格
化的软件组件, 并以图标等可视
方式提供组件 。 由于能直观地理
解组件的功能与作用, 就有可能
将以最终用户为主导型的应用软
件开发引向成功 。
什么是 Delphi
?Delphi是面向对象的, 用于快速
应用开发的可视化编程环境
?使用对象 Pascal作为它的基本语
言 。
?Delphi可用来开发包括通用工具
到数据库访问的各种应用系统 。
集成开发环境 IDE
Integrated Development Environment
是提供设计, 运行和调试应用程序所需的
全部工具的一种环境, 并对这些工具提供
了很好的连接, 以减少程序开发的难度 。
?代码编辑器
?调试器
?工具栏
?图像编辑器
?数据库工具
这些工具协调操作、
相互补充、使复杂
的应用程序开发速
度更快,且不易出
错。
可视化编程
Delphi提供了一个丰富的可视组件库 VCL
- Visual Component Library)
VCL是由一些称作“组件”的预制对象所
组成
组件提供了可视设计应用程序的能力
快速应用开发 RAD
rapid application development
Delphi提供了一套快速应用开发设计
工具, 包括应用, 窗体, 菜单等模板及
编程向导 。 通过这些工具和 Delphi的本
地代码编译器, 你可以快速创建和测试
原型, 完成应用程序的开发 。
事件驱动
Delphi采用了事件驱动的程序运行机制
事件驱动则是模拟现实世界中对象之间
的信息传递和相互作用。当一个对象通过某
种方式发出一个信息给另一个对象时,一个
事件就发生了,就会触发一个事件处理程序
(如果编写了此事件处理程序))
因此 Delphi的程序结构很像是一套相互作
用的组件对象, 你所编写的代码本质上就是
把这些组件, 胶合, 在一块, 如同采用预制
构件盖房一样 。
组件
属性
状态描述 事件 — 用户的操作或系统中出
现的一些事情。
每个组件都有自
己能响应的事件
清单。
而响应事件的执
行代码就是事件
处理句柄方法
功能调用