【转自 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 开发语法整理的更多相关文章

  1. 通过接口标准化ABAP OO开发

    本文是对接口编程的讨论,希望能对年轻的开发者有所帮助. 要点: 通过接口对类方法进行更高层的抽象 接口使代码清晰易读 接口使你可以创建模拟对象(Mockup Object)以提高代码的可测试性 帮助实 ...

  2. 运维开发笔记整理-Django模型语法

    运维开发笔记整理-Django模型语法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模型基本概念 1>.什么是模型 模型是你的数据唯一的,权威的信息源.它包含你所存储数 ...

  3. ABAP OO的八大理由

    原贴地址:http://scnblogs.techweb.com.cn/abaplv/archives/127.html 几年前SAP BASIS 4.6为ABAP扩展了OO功能,这是很多传统的ABA ...

  4. ABAP OO与ALV结合方式探索(1)

    用OO来开发,尤其是在复杂业务的开发过程中 从程序设计的角度而言,应该更简单一点 而ALV是二次开发中登场很高的一个控件 最近做了一些尝试,探索OO的代码和ALV的结合使用   使用控件型的ALV A ...

  5. 运维开发笔记整理-URL配置

    运维开发笔记整理-URL配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.URL路由 对于高质量的Web应用来说,使用简洁,优雅的URL的路由是一个非常值得重视的细节.Dja ...

  6. Markdown 语法整理

    Markdown 语法整理 白宁超 2015年7月24日14:57:49 一.字体设置 A First Level Header == A Second Level Header -- # 标题 ## ...

  7. JQuery插件之【jqGrid】常用语法整理

    jqGrid常用语法整理,包含数据获取.常用函数.触发事件等 jqGrid表格数据获取相关语法 获取表格所有数据 $("#grid").jqGrid("getRowDat ...

  8. Markdown语法整理

    标题 语法格式:'#'+'空格'+'文本',一共6级 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 斜体 语法格式:1个星号包裹,我 ...

  9. Java-JFrame开发汇总整理

    Java-JFrame开发汇总整理 在CS框架下,可以通过java代码开发JFrame弹窗体的功能,即类似于QQ登录等安装在计算机中的程序,通过java开发CS中C即客户端的一般用到的知识点如下: 一 ...

随机推荐

  1. scss使用后的简单入门总结

    端午节第一天 将之前做的一个小demo的css样式改为了scss 好吧 改完了 赶紧由小兵 升级到中尉了 什么是scss? 我的理解是scss 就是css 的预处理器,使css变得更加富有逻辑. 有什 ...

  2. Angular 学习笔记——service &constant

    <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...

  3. Highcharts使用二维数组生成图表

    Highcharts使用二维数组生成图表 二维数组是更为灵活的一种数据存储方式.在Highcharts中.能够使用配置项column和rows二维数组.对于使用columns构建的二维数组,Highc ...

  4. ubuntu+tomcat,多环境、自动化部署脚本,git+maven+tomcat+ubuntu

     1.切换到/opt/code目录,没有利用mkdir code创建code目录,新建deploy.sh 脚本文件,内容如下 projectName=""; #默认tomcat目录 ...

  5. Archlinux: 优化触摸板配置

    在逛 Archlinuxcn BBS 时看到这个帖子: fcitx 输入法看不到选词,上面键盘也不见了! 等待妹子的 依云 提到了 infinality, 并且给出了这个链接: fix-infinal ...

  6. Java种八种常用排序算法

    1 直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中. 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列. 对第四个数.第五个数……直 ...

  7. asp.net core mvc视频A:笔记3-6.视图数据共享之session/cache

    第一部分:Session讲解 会话级别的,怎么区分呢?以浏览器为单位,比如IE,搜狗等等,都算一个单独的会话 修改3.5项目 控制器代码 前端显示 startup.cs中配置并启用Session 运行 ...

  8. Android--点击EditText的时候弹出软键盘,点击EditText之外空白处软键盘消失

    在android中点击EditText的时候会弹出软键盘,但当我们输入完毕或者想隐藏软键盘时,我们可以点击软键盘上的隐藏按钮,这种方法固然可行,但是为了提高用户体验,我们常常要实现这种功能:当输入完毕 ...

  9. Write operations are not allowed in read-only mode (FlushMode.MANUAL)

    © 版权声明:本文为博主原创文章,转载请注明出处 1.问题描述 搭建SSH框架后,为测试事务配置是否生效,因此在事务配置中取消了保存方法,然后再保存方法中手动抛出异常(已测试配置事务后没有保存成功), ...

  10. 第二章:核心C#

    变量 如果在一条语句中声明和初始化了多个变量,那么所有的变量都具有相同的数据类型 Int x=10,y=20: 变量使用前需要赋初始值 声明不同类型的变量需要单独的语句. 变量的初始化 变量时类或者结 ...