news 2026/4/16 11:15:16

ABAP OO的基本构造

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ABAP OO的基本构造

想象一下,你要造一种“全能机器人”(这就是一个类 Class)。

在 ABAP OO 中,要把这个机器人造出来并跑起来,结构非常固定,主要分为三部分:“画图纸”“造零件”“下指令”

以下是通俗易懂的必要结构说明:


1. 第一部分:画图纸 (CLASS ... DEFINITION)

这是告诉 SAP,这个机器人长什么样,有什么功能。

这一部分不写具体的代码逻辑,只定义“接口”和“变量”。它必须分为两个区域:

  • PUBLIC SECTION(对外部公开区):
    • 这是机器人的“操作面板”
    • 别人(其他程序)只能通过这里的方法和变量来控制机器人。
    • 比如:RUN(运行),GET_RESULT(获取结果)。
  • PRIVATE SECTION(内部私有区):
    • 这是机器人的“内脏和电路”
    • 只有机器人自己内部能用,外部程序看不见也摸不着。
    • 比如:MV_API_KEY(私钥),INTERNAL_CALCULATION(内部计算逻辑)。

abap

CLASS lcl_robot DEFINITION. PUBLIC SECTION. " 【对外接口】大家都能调用的方法 METHODS: run, say_hello. PRIVATE SECTION. " 【内部数据】只有机器人自己知道的秘密 DATA: mv_name TYPE string. ENDCLASS.

2. 第二部分:造零件 (CLASS ... IMPLEMENTATION)

这是告诉 SAP,这些功能具体是怎么实现的。

这一部分是写具体 ABAP 代码的地方(WRITE,IF,LOOP等)。刚才在 Definition 里声明了什么方法,这里就必须一个不漏地写出来。

abap

CLASS lcl_robot IMPLEMENTATION. METHOD run. " 具体的干活逻辑 mv_name = 'DeepSeek'. " 内部变量可以直接用 WRITE: / '机器人启动中...'. ENDMETHOD. METHOD say_hello. WRITE: / '你好,我是', mv_name. ENDMETHOD. ENDCLASS.

3. 第三部分:下指令 (调用/实例化)

这是主程序,真正把机器人造出来干活。

光有图纸(Class)没用,你得用NEW关键字把它造出来(实例化对象),然后按按钮。

abap

START-OF-SELECTION. " 1. 造机器人 (实例化) DATA(lo_my_bot) = NEW lcl_robot( ). " 2. 按按钮 (调用 Public 方法) lo_my_bot->run( ). lo_my_bot->say_hello( ). " 注意:你不能写 lo_my_bot->mv_name,因为那是 Private 的(内脏)。

总结一张图

结构名称通俗比喻作用关键字
DEFINITION产品说明书定义有什么按钮(Public),肚子里有什么零件(Private)PUBLIC SECTION,PRIVATE SECTION,METHODS,DATA
IMPLEMENTATION工厂车间具体的制作工艺,写代码逻辑的地方METHOD ... ENDMETHOD
NEW ...生产出厂把图纸变成实物,并在主程序中使用NEW class_name( ),->

记住这个公式:
ABAP OO =定义 (声明)+实现 (逻辑)+实例化 (使用)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/10 13:31:04

【计算机毕业设计案例】基于springboot的房产物业管理系统设计与实现基于springboot的物业管理系统的设计与实现(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/12 16:11:23

【课程设计/毕业设计】基于springboot的超市外卖商城系统的设计与实现基于javaee的超市外卖系统的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/16 11:07:35

Java毕设选题推荐:基于javaee的超市外卖系统的设计与实现基于springboot的超市外卖商城系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/13 9:51:36

【液态神经网络 第四部分】一个高性能的 LNN/CfC 模型

项目交付内容 1. 核心代码模块 (src/lnn_cfc/) 表格 复制 模块 文件 功能 LTC 单元 ltc_cell.py ODE 基础的液体时间常数网络,支持 Euler/RK4 求解器、谱范数约束 CfC 单元 cfc_cell.py 闭式连续时间网络,门控机制、时间衰减、数值稳定性保护 Wired CfC wired_cfccell.py …

作者头像 李华
网站建设 2026/4/11 15:38:51

自定义starter,扫描指定注解的bean

自定义starter 相当于自己根据配置信息&#xff0c;生成了一个默认的bean&#xff0c; 导入依赖&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://w…

作者头像 李华