当前位置: 首页 > article >正文

[SAP ABAP] 面向对象程序设计-构造方法

构造方法(constructor)是一类特殊的方法,在创建对象实例时,构造方法自动运行(在实例化对象时,自动完成对象的初始化)

我们可以使用METHODS CONSTRUCTOR 或者 CLASS-METHODS CLASS_CONSTRUCTOR定义构造方法

每个类只能有一个构造方法,在  CREATE OBJECT  语句中自动调用构造方法

例1

通过构造方法,创建对象实例的代码更加简洁

REPORT z437_test_2025.

CLASS book DEFINITION.
  PUBLIC SECTION.
    TYPES: ty_price TYPE p LENGTH 10 DECIMALS 2.

    METHODS:
      constructor IMPORTING title  TYPE string
                            author TYPE string
                            price  TYPE ty_price,

      set_price IMPORTING new_price TYPE ty_price,

      print_info.

  PRIVATE SECTION.
   DATA: title  TYPE string,
         author TYPE string,
         price  TYPE p DECIMALS 2.

ENDCLASS.                      " Book DEFINITION.

CLASS book IMPLEMENTATION.
  METHOD constructor.
    me->title = title.
    me->author = author.
    me->price = price.
  ENDMETHOD.                   " constructor

  METHOD set_price.
    me->price = new_price.
  ENDMETHOD.                    " set_price

  METHOD print_info.
    WRITE: / 'Title:',  title.
    WRITE: / 'Author:', author.
    WRITE: / 'Price:',  price.
    ULINE.
  ENDMETHOD.                   " print_info
ENDCLASS.                      " Book IMPLEMENTATION

START-OF-SELECTION.
  " 定义变量
  DATA: book1 TYPE REF TO book,
        book2 TYPE REF TO book.

  " 创建对象实例
  CREATE OBJECT book1
    EXPORTING title = 'A'
              author = 'Andy'
              price = '39.5'.

  CREATE OBJECT book2
    EXPORTING title = 'B'
              author = 'Box'
              price = '18.8'.

  book1->print_info( ).

  book2->set_price( '22.0' ).
  book2->print_info( ).

输出结果:

在ABAP编程中,构造方法(constructor))名称始终为constructor


http://www.kler.cn/a/535049.html

相关文章:

  • 安卓开发,Reason: java.net.SocketTimeoutException: Connect timed out
  • AI大模型:本地部署deepseek
  • [c语言日寄]赋值操作对内存的影响
  • 38. RTC实验
  • 【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(四) -> 常见组件(一)
  • 低通滤波算法的数学原理和C语言实现
  • SpringCloud基础 入门级 学习SpringCloud 超详细(简单通俗易懂)
  • 为什么使用springboot框架,springboot常用的配置文件,如何读取配置文件中自定义的内容,多环境下如何切换配置文件,包扫描原理,自动装配的原理
  • 变压器-000000
  • Android性能调优之需要掌握Dalvik和ART的知识
  • win编译openssl
  • 前部分知识复习05
  • 机器学习大模型问题记录
  • ESP-Skainet智能语音助手,ESP32-S3物联网方案,设备高效语音交互
  • 《图解设计模式》笔记(五)一致性
  • nuxt3中使用useFetch请求刷新不返回数据或返回html结构问题解决-完整nuxt3useFetchtch请求封装
  • [NKU]C++安装环境 VScode
  • C++的 I/O 流
  • CentOS 6.5编译Rsyslog 8.1903.0
  • web3.0技术
  • 计算机组成与接口
  • 天童教育:帮助孩子建立稳定的自信心
  • 如何从0开始做自动化测试?
  • 深度学习系列--03.激活函数
  • Three.js实现炫酷图片粒子化效果:从聚合到扩散的动态演变
  • SystemVerilog系统函数之$system详细使用指南与举例