PowerBuilder应用开发系列讲座(3)
日期:2007年5月2日 作者: 查看:[大字体 中字体 小字体]-
p> 在PowerBuilder的应用开发中,运用面向对象技术不是必须的,但是对于一个大型复杂应用系统的开发,如果采用了面向对象技术,则开发效率会大大提高。
用PowerBuilder开发的好处是,即使您不懂得什么是面向对象技术,您也可能会下意识地用到面向对象技术的一些特性,但是如果您对这一技术有了充分的了解,那对您所设计程序的可重用性,可维护性和其他各方面的质量都会有大幅度提高。
PowerBuilder的对象
PowerBuilder对象有三个部分元素:属性、函数和事件。
(1)属性:也就是数据。包括系统属性和用户定义属性两类,描述该对象的各种特性。如在窗口对象中的系统属性包括标题、高度、宽度等,用户定义的属性可以是实例变量或共享变量,对这种属性的访问同系统属性相同,只是在封装性上有所不同。
(2)事件:PowerBuilder中的事件与Windows的事件存在着映射关系。当用户的操作或系统本身产生了Windows的标准事件,就转化成PowerBuilder中的事件。例如命令按钮有一个叫Clicked事件,当用户按按钮时触发,操作系统首先检测到鼠标被点击,并把Clicked这一消息转给该按钮,PowerBuilder运行时的工作引擎翻译了这一事件,并执行适当的PowerScript语句。PowerBuilder中大部分的事件都是可以映射成由用户激发的Windows事件。
另一类事件是用户定义事件,这种事件是用户声明并可以在任何时刻由用户触发的,Power-Builder中保留了75个用户事件可由程序员使用。
(3)函数:用户通过函数来使对象完成某些操作。Pow-erSoft公司建议用户通过调用对象事件和函数来修改对象而不要直接修改对象属性,以满足对象封装的要求,例如采用Window.hide()而不要用Window.visi-ble=false来使窗口不可见。
PowerBuilder面向对象的特性
提到一门语言的面向对象特性,它应当具有继承性、多态性和封装性,如缺少其中的一个则只能称其为基于对象的系统,而不是面向对象的系统,而PowerBuilder则很好地具备了全部三个特性。
继承:
PowerBuilder中,窗口、菜单和用户对象是可以继承的,而其他对象则都不能。当您继承了一个对象,那您得到的子类将具有父类的属性、实例变量、共享变量、控件、用户自定义事件、对象级函数、事件和代码(script)。也就是说当您继承了一个类,您几乎得到了
这个类的全部,不过有一点值得注意,您不能在子类中删除任何一个继承到的特性。
在继承了祖? 后,您可以在子类中扩展或覆盖祖先的元素。例如代码,在PowerBuilder中缺省的是采用扩展方式,先执行继承到的祖先代码,后执行子类的扩展代码。您也可以选择菜单CompilerOverride Ancestor Script选项,只执行子类的代码,并可在代码中的任意位置调动祖先代码如CALL w_l∷open。
重载函数是面向对象程序设计的重要特性,即同一函数名却有着不同的参数和返回值。在运行时,系统自动寻找执行参数相匹配的那个函数,例如我们常用的MessageBox()这个函数就有12个不同参数的重载函数。遗憾的是,对Power-Builder我们不能在同一个继承对象中定义2个不同参数的重载函数,只能在后继的类中定义重载函数,这使我们对重载函数的定义带来了很大的不便,这不能不说是PowerBuilder的缺陷。(不过在即将发布的PowerBuilder5.0中,正是支持了函数重载这一特性。)
对于对象的继承,PowerBuilder中所有对象都有其共同的基类PowerObject,从这一个基类下面分成继承Graph-icObject和NonVisualObject等。它们的继承关系和扩展函数及属性如下表:
多态性:
在PowerBuilder中有大量的多态函数如print()、TriggerEvent()等,在运行过程中,您只需要指出对象和函数名即可。在有些函数中,即使不知道对象类,也可以用Class Name()函数得到对象类,或得到实例名,将对象名作为函数参数调用该函数。
- [1] [2] 下一页
-
- PowerBuilder应用开发系列讲座(3) 相关文章:
- ·PowerBuilder应用开发系列讲座(3)
- PowerBuilder应用开发系列讲座(3) 相关软件
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
精品推荐
热点TOP10
- ·在PB中用Flash制作Splash封面
- ·在PB中如何对ASA进行数据备份
- ·循序渐进学习Power Builder 6.0(13-3)
- ·循序渐进学习Power Builder 6.0(15-4)
- ·循序渐进学习Power Builder 6.0(15-2)
- ·循序渐进学习Power Builder 6.0(14-3)
- ·循序渐进学习Power Builder 6.0(14-2)
- ·在pb6.0以上版本中创建数据库
- ·PowerBuilder应用开发系列讲座(23)
- ·PowerBuilder应用开发系列讲座(39)
- ·PowerBuilder应用开发系列讲座(4)
- ·在PB中用OLE存取blob类型数据
- ·PB5对SQLSERVER6数据库的访问
- ·深入了解PowerBuilder的数据窗
- ·PowerBuilder应用开发系列讲座(38)
- ·在PB中动态调用函数
- ·PowerBuilder应用开发系列讲座(3)
- ·用PowerBuilder6.0建立B/S结构应用程序
- ·PowerBuilder实用技巧八则
- ·PB应用ODBC访问不同数据库
