注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

XINBO'S SAP BLOG

你所浪费的今天,是昨天死去的人奢望的明天。你所厌恶的现在,是未来的你回不去的曾经

 
 
 

日志

 
 

ABAP OO的八大理由(十六)  

2009-05-22 15:02:38|  分类: OO |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
下面的例子比较了两种模式下从数据库中取数的不同之处:
在面向过程的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.
  评论这张
 
阅读(348)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017