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 语句

时间: 2024-12-13 16:05:59

ABAP OO 开发语法整理的相关文章

通过接口标准化ABAP OO开发

本文是对接口编程的讨论,希望能对年轻的开发者有所帮助. 要点: 通过接口对类方法进行更高层的抽象 接口使代码清晰易读 接口使你可以创建模拟对象(Mockup Object)以提高代码的可测试性 帮助实现SOLID原则 可以在不使用RTTS和类型转换的前提下使用多种类的不同实例. 因为在学习ABAP之前,我曾经学习过其它面向对象语言,因此我很纠结于ABAP中不存在的一个特性——重载方法(overload). 也许你会问,重载是什么? 重载就是函数或者方法有相同的名称,但是参数列表和实现不相同的情形

[OO]ABAP OO 语法--实例看 &quot;=&quot;与&quot;?=&quot; 的区别[转]

ABAP OO 面向对象语法   实例看  "=" 与 "?=" 的区别 1. "="  同类型赋值*&---------------------------------------------------------------------**& Report  Z_WYS_TYPEREF01*&作者:永上*&----------------------------------------------------

iOS开发资料整理

Please help me contribute to this list, for non-experience iOS developers or someone who need a come-in-handy library list to refer or to use in their projects. Fork, edit and send a PR are all things you can do! Table of Contents UI Component// UI组件

Markdown语法整理

Markdown语法整理 目录 6.1.竖杠|下划线-写法 6.2.htmltable写法 5.1.无需列表 5.2.有序列表 5.3.定义型列表 5.4.列表缩进 5.5.包含段落的列表 4.1.页内超链接 4.2.文章内部标题链接 3.1.行内式: 3.2.参考式 3.3.自动连接 一.分级目录 二.斜体与粗体 三.超链接 四.锚点 五.列表 六.表格 说明:本文中中语法里面的代码就是需要写的Markdown语法,展示效果就是最后生成的页面此语法编写和测试环境:windows上使用Markd

页面开发语法

一.一个纯页面跳转问题,用到表单提交 程序中的基本方法格式,可以简单看一下:  在一个页面中,想简单放一个按钮,可以跳转到另外一个页面,这个可能有两种实现方式:  A js中写一下:window.location = getBathPath() + "/fm/someAction.action"  B 利用 form 表单提交,在一个 jsp 页面的 form 中,要定义:   method="post"   action=the URL like A's  但此处

JAVA开发工具整理

JAVA开发工具整理 1-日志 2-JSON 3-XML 4-数据对象转换 4.1-spring beanUtils 4.2-JODD

MySQL技术分类一:DB应用开发基础整理

MySQL技术分类整理一:DB应用开发基础1.库1).创建库syntax:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name    [create_specification] ... create_specification:    [DEFAULT] CHARACTER SET [=] charset_name  | [DEFAULT] COLLATE [=] collation_name 注:如果不使用if not exists,则当数据库

Oracle常用语法整理

因本人是刚进入开发不久的新人,所以平时整理了一些常用的oracle语法,现分享如下:

ios_swift开发资源整理

目录 1.苹果官方资源 2.国内外视频网站推荐 3.中文文档 4.demo网站 5.开发工具推荐 6.国内外开发网站论坛 7.技术博客推荐 8.书籍推荐 9.第三方框架推荐 10.第三方发布平台 11.Terminal指令 适用于Xcode 12.经典文章推荐,欢迎投稿 13.iOS开发问题集锦,欢迎投稿 14.swift2.0语法更新和xcode改动等专题 1.官方资料 The Swift programming language online官方文档 The Swift programmin