ABAP OO的八大理由(十六)

 
下面的例子比较了两种模式下从数据库中取数的不同之处:
在面向过程的ABAP程序中:
TABLES:dbtab.
SELECT * FROM dbtab.
在面向对象的ABAP程序中
DATA wa TYPE dbtab.
SELECT * INTO wa FROM dbtab.
TABLES隐含的声明了一个与数据库表名相同的结构变量,那么对数据库表内容的操作都使用这个隐含的变量。而在ABAP OO中,这种隐含的方式是不被允许的。TABLES语句是禁用的,必须使用更加明确的语句。
下面是另一个例子:
在面向过程的ABAP程序中:
FIELD-SYMBOLS <fs>.
IF <fs> IS ASSIGNED.
 
ENDIF.
在面向对象的ABAP程序中:
FIELD-SYMBOLS <fs> TYPE ANY.
IF <fs> IS ASSIGNED.
 
ENDIF.
在ABAP OO中形参和FIELD SYMBOL必须明确的指定类型,而在过程的ABAP程序中是没有必要的。如果没有明确指定FIELD SYMBOL的类型,ABAP运行时就会自动把SPACE分配给这个field symbol。这样的话在过程的ABAP程序中判断语句的返回结果为TRUE,而在ABAP OO中则为false。
最后一个例子如下:
在过程的ABAP程序中;
DATA number TYPE I VALUE ….
TRANSLATE number TO UPPER CASE.
在ABAP OO中
DATA number TYPE I VALUE …
TRANSLATE number TO UPPER CASE.
在过程的ABAP程序中对数字型的字符型操作abap运行时会给警告信息,而在ABAP OO中则会给错误信息。在ABAP OO中,系统运行时保证了对应的操作必须针对对应的变量。
原因3 :ABAP OO 支持一些新的技术
SAP许多新的技术都是基于ABAP OO的,那么在你的项目中必须对面对这一点。许多基础的技术都在ABAP OO中发布了,这些包括:
l         User dialog的架构,如SAP control framework(CFW),Business Server Pages(BSP)以及Desktop Office Integration(DOI)等。
l         Frameworks for persisting data in the database(Object Service) and Shared Objects(area classes)
l         Service classes CL_GUI_FRONTEND_SERVICES for working with data at the presentation server
l         Laguate related classes,such as Run Time Type Services(RTTS) classes on CL_ABAP_EXPIMP subclasses for extended EXPORT/IMPORT functionality for example.
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值