ABAP面向对象的基本概念(一)

一.参数的定义和传递
类方法的参数接口部分是在类声明部分通过METHODS语句定义的,而且该接口不需要在类的实现部分再次的出现。
语法形式:
METHODS meth
IMPORTING ... [VALUE(i)|i] TYPE type [OPTIONAL|DEFAULT def]...
EXPORTING ... [VALUE(e)|e] TYPE type [OPTIONAL]...
CHANGING ... [VALUE(c)|c] TYPE type [OPTIONAL|DEFAULT def]...
RETURNING VALUE(r)
EXCEPTIONS ...x...
用法: IMPORTING指定一个或多个输入参数
       EXPORTING指定一个或多个输出参数
       CHANGE指定一个或多个输入输出参数
       VALUE指定参数传递形式(传值和引用传值)后者为默认方式
       TYPE指定参数类型
       OPTIONAL和DEFAULT已定义的输入参数必须在调用是进行传递
       RETURNING该项可代替IMPORTING和EXPORTING


二.调用方法
在调用方法时,除去指定为可选的参数之外,所有参数都必须传递相应的实参值。
CALL METHOD [oref->|class=>] meth
     EXPORTING ...i=f...
     IMPORTING ...e=g...
     CHANGING ...c=c...
     RECEIVING ...c=c...
     EXCEPTIONS ...x=rc...
该语句适用于包括类内部直接调用,实例调用,静态调用三种情况。
其中IMPORTING的i项将接受CALL METHOD中EXPORTING的f实参;而用EXPORTING的参数e,通过IMPORTING的实参g传递;内部的意外处理与功能模块相似,异常 通过RAISE和MESSAGE RAISE触发,并通过系统字段SY-SVBRC返回错误代码。
若方法种只包含输入,而没有输出,则通过:
CALL METHOD [oref->|class=>] meth().
CALL METHOD [oref->|class=>] meth(f).
CALL METHOD [oref->|class=>] meth(i=f).
其调用中只包含0,1个多个输入参数情况。
除上述外,ABAP OBJECT还提供另一种形式,可方便实现参数的动态传递:
CALL METHOD [oref->|class=>] meth
     PARAMETER-TABLE ptab
     EXCEPTION-TABLE etab.
其中实参必须在程序中放置在两个特定类型的内表中,传递给方法,ptab可参照ABAP中的ABAP_PARMBIND(行类型)和ABAP_PARMBIND_TAB(表类型)
异常表etab可参照ABAP中的ABAP_EXCBIND(行类型) ABAP_EXCBIND_TAB(表类型)


三.函数方法
函数也是一种过程模块,其特殊之处是在调用时可以使用操作符(->、=>)来代替调用语句,并可作为操作数直接应用于操作语句中
METHODS meth
   IMPORTING ...[VALUE(i)|i]TYPE type [OPTIONAL|DEFAULT def]...
   RETURNING VALUE(r).
CALL METHOD [oref->|class=>]meth
   EXPORTING ...i=f...
   RECEIVING r=h.
注:任意个输入,只有一个输出。


四.构造方法
1.构造方法
构造方法是由运行时环境自动调用的一种方法,用于为对象设定一个初始化状态,不能在程序运行过程中由程序代码调用。
注:系统可自行生成一个默认的构造方法,也存在静态和实例两种形式
1).实例构造方法在每一个对象创建时(CREATE OBJECT)被系统调用;若在类声明部分进行声明,则需要在实现部分进行代码实现。
两点区别:首先,有预定义名称CONSTRUVTOR;其次,必须在公有部分进行声明。
METHODS constructor
   IMPORTING ...[VALUE(i)|i]TYPE type [OPTIONAL|DEFAULT def]...
   EXCEPTIONS ...e...
不包含任何形式输出参数,其次定义对象状态,而不是进行改变。该语句本身也可包含输出参数EXPORTING和返回值EXCEPTION选项,如果对象创建出现异常,则删除对象,引用变量设为初始值。
2).静态类构造方法,只在程序中被调用一次,即第一次使用该类时调用,其必须在公有部分声明,名称必须为CLASS_CONSTRUCTOR.
CLASS-METHODS   class-constructor
2.析构方法
其概念是在对象删除的过程中被调用,目前ABAP对象尚未提供。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7180389/viewspace-623684/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7180389/viewspace-623684/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值