ABAP类的方法
来源:互联网 发布:seo怎么提升网站权重 编辑:程序博客网 时间:2024/06/05 07:29
方法参数传递:
REPORT z_mehtod_para.
*---------------------------------------------------------------------*
* CLASS vehicle DEFINITION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS vehicle DEFINITION.
PUBLIC SECTION.
METHODS: accelerate IMPORTING rate TYPE i,
show_speed.
PRIVATE SECTION.
DATA speed TYPE i VALUE 0.
ENDCLASS.
*---------------------------------------------------------------------*
* CLASS vehicle IMPLEMENTATION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS vehicle IMPLEMENTATION.
METHOD accelerate.
speed = speed + rate.
ENDMETHOD.
METHOD show_speed.
WRITE: / 'Speed:',speed.
ENDMETHOD.
ENDCLASS.
DATA o_vehicle TYPE REF TO vehicle.
START-OF-SELECTION.
CREATE OBJECT o_vehicle.
CALL METHOD o_vehicle->accelerate EXPORTING rate = 2.
CALL METHOD o_vehicle->accelerate EXPORTING rate = 2.
CALL METHOD o_vehicle->show_speed.
该示例输出如下:
4
方法还可以进行动态调用,即通过变量对方法进行指定,例如下列语句
meth = acclerate.
call method o_vehicle->(meth).
函数方法:
REPORT z_funtional_method.
*---------------------------------------------------------------------*
* CLASS circle DEFINITION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS circle DEFINITION.
PUBLIC SECTION.
METHODS get_area IMPORTING value(i_radius) TYPE i
RETURNING value(r_size) TYPE f.
PRIVATE SECTION.
CONSTANTS pi TYPE f VALUE '3.14159265'.
ENDCLASS.
*---------------------------------------------------------------------*
* CLASS circle IMPLEMENTATION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS circle IMPLEMENTATION.
METHOD get_area.
r_size = i_radius ** 2 * pi.
ENDMETHOD.
ENDCLASS.
PARAMETERS radius TYPE i.
DATA: o_circle TYPE REF TO circle,
area TYPE f.
START-OF-SELECTION.
CREATE OBJECT o_circle.
CALL METHOD o_circle->get_area
EXPORTING i_radius = radius
RECEIVING r_size = area.
WRITE: / area.
area = o_circle->get_area( radius ).
WRITE: / area.
构造方法和析构方法
1. 构造方法
构造方法是运行时环境自动调用的一种方法,用于为对象设定一个初始化状态,不能在程序运行过程中由程序代码调用.与其他方法类似构造方法也存在静态和实例两种形式.构造方法不一定需要在类中定
义,系统通常会自动生成一个默认的构造方法,将对象状态设置为初始值.
构造方法中不包含任何形式的输出参数,其功能只是定义对象状态,而不是对其进行改变.构造方法在create object语句中被调用,因此根据实例构造方法的定义,该语句本身也可以包含输出参数exporting和
返回值exception选项.如果在对象创建过程中出现异常,则对象被删除,引用变量设为初始值.
类构造方法属于静态方法,只能在程序中被调用一次,即第一次使用该类时调用,该方法也必须在公有部分声明,其名称必须为class_constructor.
class-methods class_constructor.
类构造方法不包含接口,而且在其中只能访问类的静态属性.
构造方法:
REPORT z_method_constructor.
*---------------------------------------------------------------------*
* CLASS vehicle DEFINITION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS vehicle DEFINITION.
PUBLIC SECTION.
METHODS: accelerate IMPORTING rate TYPE i,
constructor IMPORTING i_speed TYPE i,
show_speed.
PRIVATE SECTION.
DATA speed TYPE i VALUE 0.
ENDCLASS.
*---------------------------------------------------------------------*
* CLASS vehicle IMPLEMENTATION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS vehicle IMPLEMENTATION.
METHOD accelerate.
speed = speed + rate.
ENDMETHOD.
METHOD show_speed.
WRITE speed.
ENDMETHOD.
METHOD constructor.
speed = i_speed.
ENDMETHOD.
ENDCLASS.
DATA o_vehicle TYPE REF TO vehicle.
START-OF-SELECTION.
CREATE OBJECT o_vehicle EXPORTING i_speed = 4.
CALL METHOD o_vehicle->accelerate EXPORTING rate = 2.
CALL METHOD o_vehicle->accelerate EXPORTING rate = 2.
CALL METHOD o_vehicle->show_speed.
该示例输出如下:
8
在对象创建过程中,通过构造方法传递了一个速度初始值作为其初始状态.
2. 析构方法
在某些面向对象语言中还存在析构方法的概念,该方法在对象删除过程中被调用,目前ABAP对象中尚未提供该方法的实现形式.
- ABAP类的方法
- ABAP接口,类,方法
- ABAP负号提前的方法
- ABAP 刷新SCREEN的方法
- ABAP 字段隐藏的方法
- ABAP 行列转换的方法
- 【abap】NUMBER_RANGE_ENQUEUE方法的使用
- ABAP--OBJECTS ABAP的类的基础知识
- ABAP--OBJECTS ABAP的类的基础知识
- ABAP--OBJECTS ABAP的类的基础知识
- ABAP--两个提高ABAP代码效率的优化方法
- ABAP中控制windows剪贴板的方法
- ABAP中控制windows剪贴板的方法
- 一些优化ABAP程序性能的方法
- 解除ABAP程序编辑锁的方法
- 解除ABAP程序编辑锁的方法
- 在ABAP中将负号提前的方法
- SAP ABAP子程序SUBMIT调用的方法
- 搭建Eclipse开发环境,开发MapReduce程序
- Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务
- 【敏捷开发每日一贴】敏捷估算方法
- bzoj1222 [HNOI2001]产品加工 dp
- jquery fancybox插件
- ABAP类的方法
- YOLO配置文件理解
- 序列、触发器和存储过程三者之间有啥关系
- ubuntu 14.04 安装 pip出现包依赖问题(This may mean that you have requested an impossible situation or ifyou ar
- RSA算法 JS加密 JAVA解密
- hbase版本和jdk版本兼容问题
- 欢迎使用CSDN-markdown编辑器
- IP的子网号
- linux 下tomcat6 配置为服务