- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 ABAP对象
在SAP R/3 4.0之前的版本中,ABAP是完全面向过程的语言,ABAP对象是面向对象技术在ABAP语言中的实现,在R/3 4.0后逐步引入到SAP系统。
5.1面向对象基础
5.1.1 面向对象概念
面向对象(OBJECT ORIENTATION,OO)是IT领域中的重要概念之一。面向对象的程序设计(OBJECT-ORIENTED PROGRAMMING,OOP)是以模拟现实世界中的对象为问题解决方案的一种软件设计思想。
对象和类
对象(object)是包含数据并提供服务的程序代码段,其中数据部分代表该对象的属性(attribute,相当于某些OOP书籍中的数据成员),而所提供的服务则被称为方法(method,有些书中称之为操作openation或函数function,或成员函数)。一般来说,方法用于操作对象内部私有数据(即对象的属性,代表该对象的当前状态),以显示或改变这个状态。对象的属性不能被外部用户直接访问,而只能通过方法进行,这保证了对象本身的内部一致性。
类(class)是对象的定义,通过属性和方法的封闭来描绘对象。从技术的角度来看,对象是程序中类的实例(instances),在运行时环境中根据类的说明生成。类和类的实例(即对象实体)是一对多关系。
在程序中,对象的识别和寻址是通过对象引用来实现的,对象引用变量可以访问对象的属性和方法。
面向对象的基本要素
面向对象的程序设计一般具有下列特性:
封装(encapsulation)对象可以对其内部资源(包括属性和方法)的可见性(visibility)进行限定,每一个对象都有一个接口,决定了其他对象如何与之相互作用。整个对象的实现过程是封装起来的,在该对象外部不可见。
多态(polymorphism)指相同名称的方法在不同的类中呈现不同的行为。面向对象中的对象和外部存在接口,通过接口可以访问不同类的对象中同名的方法。其意义在于,对于外部用户来说,这些对象的接口是一致的,然而对象本身将根据其实际所属的类选择正确的行为实现。
继承(inheritance)可以从一个已存在的类的基础之上建立新的派生类,派生类可以继承,覆盖原有类的属性和方法或者添加新的类成员(属性和方法均为类的成员)。
面向对象的优点
面向对象可以使复杂的软件系统易于理解,因为面向对象的程序设计更好地实现了计算机语言对真实世界的抽象化和模拟。
在设计良好的面对对象系统中,对系统的维护有可能被限定在类级别,即系统的重新设计只需要对类属性或方法进行修改,而不需要涉及所有其他系统元素,这将大大减轻系统维护的负担。
通过多态和继承,面向对象程序设计可实现不同类之间的组件复用。
对面向对象系统的修订和维护的工作量较一般系统而言将大量减轻,因为大部分的问题将在系统设计阶段被发现并加以改正。
5.1.2ABAP Object
Abap objects是SAP R/3 4.0版本之后发布的概念,该概念有双层含义。一是指整个ABAP运行时环境,另一方面代表ABAP语言中新增加的面对对象部分。即本章中主要介绍的ABAP对象语法格式(以及相关开发工具)。
运行时环境
用ABAP Objects表示ABAP运行环境,意味着SAP系统本身也逐步趋向以面向对象的方式实现,并将进一步“面向对象”化。引入面向对象后的ABAP Workbench由不同的开发工具组成,而且使用功能模块本身也可以实现特定功能代码块的封装。Business Object Repository (BOR,商业对象仓库)则允许用户创建SAP商用对象,供系统内部或外部(如通过DCOM和CORBA语言)接口使用。
语言扩展
传统ABAP主要使用结构化程序设计技术(structured programming),这种设计中,数据存储在结构化的数据库表中,通过面向过程的程序访问并操作它们。
ABAP OBJECTS是ABAP语言中的一套面向对象语句集合,主要思想是将数据和功能整合在对象中,但并不和以往存在的ABAP语法存在冲突。可以将新的OO语句添加到原有的ABAP程序中,也可以在ABAP OBJECTS中使用“传统”的ABAP语句。
ABAP语言的面对对象部分是基于JAVA和C++的OO模型进行改造而成的,并与DCOM和CORBA等外部对象接口相互兼容。SAP商业对象(SAP BUSINESS OBJECTS)和GUI对象在系统内部也分别实现面向对象技术,并可以与ABAP Objects相整合。
例子:
Report z_simple_object.
Class application definition.
Public section.
Methods:show_text.
Private section.
Data: text(1
文档评论(0)