ABAP OO 开发语法整理
【转自 http://blog.csdn.net/saphome/article/details/6956933】
在类中,只能用TYPE 附加关键字指定数据类型。
•TYPES: 一般的类型定义方法
•CONSTANTS: 一般的常数定义方法
只能用LIKE 引用本地数据对象。
•DATA: var1 TYPE <TYPES 定义的类型或字典类型>.
•DATA: var2 LIKE var1 <不能使用字典对象>.
用DATA 声明的公共属性如果加了READ-ONLY 附加 关键字,就说明它可以被外部读取,但只能用类内部 的方法修改。
•DATA: var3 TYPE 类型READ-ONLY.
现在只能在类声明的公共可见节(PUBLIC SECTION) 和接口定义中使用READ-ONLY 附加关键字。
•属性和可见性
在PRIVATE SECTION中定义私有属性,在PUBLIC SECTION 中定义公用属性
CLASS lcl_vehicle DEFINITION.
PUBLIC SECTION DATA: “公用属性
make TYPE string. PRIVATE SECTION
PRIVATE SECTION DATA:“私有属性
Zmake TYPE string
ENDCLASS.
•静态属性用CLASS-DATA 关键字定义。
在ABAP 对象中,方法可以有IMPORTING、 EXPORTING、CHANGING 和RETURNING 这几个 参数和例外参数。所有参数都可以用值或地址传输。 (在SAP R/3 BASIS 6.10 以后,不能为例外再使用 EXCEPTIONS 参数了,而代之以RAISING 附加关键 字,后面会再提到。
可以使用RETURNING 定义方法的返回值,这里只能 定义一个参数并且只能传值,同时也不能再定义 EXPORTING 和CHANGING 参数,可以用 RETURNING 参数定义功能性的方法(后面会详细说 明)。
– 在声明中使用OPTIONAL 和DEFAULT 附加关键字 可以把所有输入参数(IMPORTING 和CHANGING 参数)定义成可选的参数,这样当对象被调用时,相 关参数的值就不是必须传输的。如果使用了 OPTIONAL 关键字,参数根据类型获得初始值,此 外,用DEFAULT 可以指定某个开始值。
静态方法使用CLASS-METHOD 语句来定义
使用语句CREATE OBJECT 来实例化对象
• 引用变量
DATA: r_vehicle1 TYPE REF TO lcl_vehicle. 语句声 明了一个引用变量,做为指向对象的指针。
• 创建对象:语法
CREATE OBJECT 语句在主内存中创建一个对象,这 个对象的属性值或者是初始值或者由VALUE 条目指 定。
引用变量可以互相分配。 例如上述例子中,可以再定义一个r_vehicle2,指向 与r_vehicle1 相同的对象。
• 调用实例方法的语法
---调用实例方法用 CALL METHOD <reference>-><instance_method>
---在SAP R/3 Basis 6.10 之后,支持简短写法,省略 CALL METHOD。
---特殊情形,当从另一个实例方法中调用一个实例方法 时,可以省略实例名称,会自动执行当前对象的方法。
---只有一个形参时,可以省略括号中的EXPORTING 附 加关键字,而如果接口中有两个或多个参数,则所有 的实参和形参都必须一一列出。
---在方法返回参数给调用者时,必须使用IMPORTING 附加关键字,所有实参和形参都要列出来。
---在方法调用时,多个参数用空格分开。
• 调用静态方法的语法
---调用静态方法用
CALL METHOD <classname>=><class_method>
---静态方法用类名定位,因为它不需要实例。
---如果在类中调用静态方法,可以省略类名。
• 功能性方法
---带有RETURNING 参数的方法被称为功能性方法,这些方法不能用EXPORTING 或CHANGING 参数,但 是有必要的话可以用多个IMPORTING 参数和例外。
---功能性方法可以直接在各种表达式中使用:
• 逻辑表达式(IF、ELSEIF、WHILE、CHECK、WAIT)
• CASE 语句(CASE、WHEN)
• LOOP 语句
• 数学表达式(COMPUTE)
• 位表达式(COMPUTE)
• MOVE 语句
ABAP OO 开发语法整理的更多相关文章
- 通过接口标准化ABAP OO开发
本文是对接口编程的讨论,希望能对年轻的开发者有所帮助. 要点: 通过接口对类方法进行更高层的抽象 接口使代码清晰易读 接口使你可以创建模拟对象(Mockup Object)以提高代码的可测试性 帮助实 ...
- 运维开发笔记整理-Django模型语法
运维开发笔记整理-Django模型语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模型基本概念 1>.什么是模型 模型是你的数据唯一的,权威的信息源.它包含你所存储数 ...
- ABAP OO的八大理由
原贴地址:http://scnblogs.techweb.com.cn/abaplv/archives/127.html 几年前SAP BASIS 4.6为ABAP扩展了OO功能,这是很多传统的ABA ...
- ABAP OO与ALV结合方式探索(1)
用OO来开发,尤其是在复杂业务的开发过程中 从程序设计的角度而言,应该更简单一点 而ALV是二次开发中登场很高的一个控件 最近做了一些尝试,探索OO的代码和ALV的结合使用 使用控件型的ALV A ...
- 运维开发笔记整理-URL配置
运维开发笔记整理-URL配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.URL路由 对于高质量的Web应用来说,使用简洁,优雅的URL的路由是一个非常值得重视的细节.Dja ...
- Markdown 语法整理
Markdown 语法整理 白宁超 2015年7月24日14:57:49 一.字体设置 A First Level Header == A Second Level Header -- # 标题 ## ...
- JQuery插件之【jqGrid】常用语法整理
jqGrid常用语法整理,包含数据获取.常用函数.触发事件等 jqGrid表格数据获取相关语法 获取表格所有数据 $("#grid").jqGrid("getRowDat ...
- Markdown语法整理
标题 语法格式:'#'+'空格'+'文本',一共6级 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 斜体 语法格式:1个星号包裹,我 ...
- Java-JFrame开发汇总整理
Java-JFrame开发汇总整理 在CS框架下,可以通过java代码开发JFrame弹窗体的功能,即类似于QQ登录等安装在计算机中的程序,通过java开发CS中C即客户端的一般用到的知识点如下: 一 ...
随机推荐
- JAVA Eclipse 启动 Eclipse 弹出“Failed to load the JNI shared library jvm_dll”怎么办
原因1:给定目录下jvm.dll不存在. 对策:(1)重新安装jre或者jdk并配置好环境变量.(2)copy一个jvm.dll放在该目录下. 原因2:eclipse的版本与jre或者jdk版本不一致 ...
- iptables firewall-cmd
iptables -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A IN ...
- cordova与ios native code交互的原理
非常早曾经写了一篇博客,总结cordova插件怎么调用到原生代码:cordova调用过程,只是写得太水.基本没有提到原理.近期加深了一点理解,又一次补充说明一下 js调用native 以下是我们产品中 ...
- Linux shell快捷键
Ctrl + a 可以快速切换到命令行开始处Ctrl + e 切换到命令行末尾Ctrl + r 在历史命令中查找 ctrl + u 删除光标前面所有字符相当于VIM里d shift+^ ct ...
- Android 创建Listener监听器形式选择:匿名内部类?外部类?
说到监听器,第一感觉就是直接写作匿名内部类来用,可是依据单一职责原则,好像又不应该作为匿名内部类来写(由于监听中有时要写较多的逻辑代码),所曾经段时间把有共性的listener单独创建放在glut.l ...
- STL学习笔记(string)
动机 C++标准程序库中的string class使我们可以将string当做一个一般型别.我们可以像对待基本型别那样地复制.赋值和比较string, 再也不必但系内存是否足够.占用的内存实际长度等问 ...
- C#常见的概念阐述
在上篇文章中,你跟着我写了一个HelloWorld,本篇中,我们来谈谈一些C#程序中的小概念 1.C# 程序结构 一个 C# 程序主要包括以下部分: 命名空间声明(Namespace declarat ...
- CSS 温故而知新 断句失败
设置了一定的宽度和高度.但无论是下面哪句都无效. word-break: break-word; word-wrap: break-word; 原因竟然是因为 /* white-space: nowr ...
- px值转rem值的Sublime Text 3自己主动完毕插件
一个CSS的px值转rem值的Sublime Text 3自己主动完毕插件. 插件效果例如以下: 安装 克隆项目 https://github.com/hyb628/cssrem.git 进入pa ...
- 李洪强经典面试题40-可能碰到的iOS笔试面试题-C语言
可能碰到的iOS笔试面试题(4)--C语言 可能碰到的iOS笔试面试题(4)--C语言 C语言,开发的基础功底,iOS很多高级应用都要和C语言打交道,所以,C语言在iOS开发中的重要性,你懂的.里面的 ...