[SAP ABAP] 面向对象程序设计-类和对象

面向对象开发的特点:封装、继承和多态

什么是类和对象?

类(CLASS)是创建对象的模板,对象(OBJECT)是类的实例 

一个类可以创建多个对象
类  =>  类型
对象  =>  个体

在ABAP语言中,定义一个类,需要包含定义(definition) 和 实现(implementation)两部分

语法格式

* 定义类
CLASS <class> DEFINITION....
ENDCLASS.* 实现类
CLASS <class> IMPLEMENTATION....
ENDCLASS.

提示Tips

完整的class代码包含定义(definition) 和实现(implementation)两部分

定义(definition)部分声明该类包含的 attributes属性, methods方法 和 constructors事件

实现(implementation)部分用来实现 constructor 和 method 的逻辑

类的优点:① 可以进行数据封装  ② 可以重复调用代码 

ABAP支持 local class(本地类) 和 global class(全局类)

local class 通过事务码 SE38/SE80 创建,只能在程序中定义并在该程序中使用

global class 通过事务码 SE24 来创建,在所有的ABAP程序中都能使用

示例1:定义一个 Book 类,Book 类有 Title、Author、Publisher 和 Price 四个属性

REPORT z437_test_2024.*----------------------------------------------------------------------*
*  CLASS book DEFINITION
*----------------------------------------------------------------------*
CLASS book DEFINITION.PUBLIC SECTION.DATA: title TYPE string,author TYPE string,publisher TYPE string,price TYPE p DECIMALS 2.METHODS: print_info.
ENDCLASS.*----------------------------------------------------------------------*
*  CLASS book IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS book IMPLEMENTATION.METHOD print_info.WRITE: / 'Title:', title,/ 'Author:', author,/ 'Publisher:', publisher,/ 'Price:', price.ENDMETHOD.
ENDCLASS.START-OF-SELECTION." 定义引用类型的变量DATA: book1 TYPE REF TO book,book2 TYPE REF TO book." 创建book的实例CREATE OBJECT book1.book1->title = '活着'.book1->author = '余华'.book1->publisher = '上海文艺出版社'.book1->price = '39.5'." 创建book的实例CREATE OBJECT book2.book2->title = '人间失格'.book2->author = '太宰治'.book2->publisher = '作家出版社'.book2->price = '18.8'.book1->print_info( ).book2->print_info( ).

输出结果:

上面示例1通过 DATA 定义的属性为实例属性,在 ABAP 中我们可以使用 -> 符号调用对象实例的属性或方法

类创建对象的过程称为实例化
类创建的对象称为实例( Instance)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/5021.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

需求不明确时如何设计测试用例?

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、与产品澄清问题 需求不明确时&#xff0c;首先&#xff0c;应弄明白&#xff0c;需求有哪些模块及功能算法不明确&#xff1f; 需求有问题找相关负责人沟通…

C++:多态中的虚/纯虚函数,抽象类以及虚函数表

我们在平时&#xff0c;旅游或者是坐高铁或火车的时候。对学生票&#xff0c;军人票&#xff0c;普通票这些概念多少都有些许耳闻。而我们上篇文章也介绍过了继承与多继承。如果这些票我们都分别的去写一个类&#xff0c;当然很冗余&#xff0c;这里我们便可以去使用继承&#…

Sun Solaris开机自启配置

Sun Solaris 开机自启配置 1. 运行级别定义&#xff08;rc0.d — rcS.d&#xff09; Linux/Solaris系统启动相关目录、脚本说明&#xff1a; init: 系统启动超级进程inittab: 进程启动配置init.d: 启动脚本存放目录rc0---rc6: 运行级别目录rcS: 单用户模式启动脚本 Linux/S…

机器学习—例子:图像识别

在上篇文章中&#xff0c;在一个需求预测示例中看到了神经网络是如何工作的&#xff0c;那么如何将类似类型的想法应用于计算机视觉应用程序。 如果你正在开发人脸识别应用程序&#xff0c;让我们深入研究一下。假设一个神经网络将这样的图片作为输入&#xff0c;并输出图片中…

微服务系列五:避免雪崩问题的限流、隔离、熔断措施

目录 实验环境说明 前言 一、一片小雪花引起的雪崩&#xff01; 1.1 雪崩问题&#xff08;级联失败问题&#xff09;示意图 1.2 雪崩问题的产生原因与解决策略 二、雪崩问题的具体解决策略 2.1 请求限流 2.2 线程隔离 2.3 服务熔断 2.4 总结——具体解决策略 三、微…

C语言之写一个修改数组内容的函数

问题代码: 函数ltrim是为了消除buf字符数组中左边空格&#xff0c; memmove函数介绍 如果对c语言指针运用非常熟练的人,结合函数功能就会发现这个代码非常的傻逼&#xff0c;你会发现为什么需要返回&#xff0c;buf不用接收返回值&#xff0c;执行这个函数后buf中的内容就已经…

第二十七章 Vue异步更新之$nextTick

目录 一、概述 二、完整代码 2.1. main.js 2.2. App.vue 一、概述 需求&#xff1a;编辑标题, 弹出显示编辑框自动聚焦 1. 点击编辑&#xff0c;显示编辑框 2. 让编辑框&#xff0c;立刻获取焦点 我们常规的思路可能会编写如下代码来实现&#xff1a; 问题&#xff1a…

【含文档】基于ssm+jsp的IT论坛系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: apache tomcat 主要技术: Java,Spring,SpringMvc,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定义了三个…

【运维心得】按任何键都不能进BIOS三步解决

目录 第一步 键盘 第二步 工具 第三步 短路 估计经常搞运维的朋友&#xff0c;会经常碰到这个问题。 第一步 键盘 这个现象出现&#xff0c;首先要确定开机时&#xff0c;屏幕上是否会显示提示字符&#xff1f;比如F2、F10、DEL键之类的&#xff0c;如果有&#xff0c;那么就…

OpenCV基础05_GUI和PyMsql

目录 一、PySimpleGUI 1、布局和窗口 2、文本框组件 3、视频处理 4、图片处理 二、pymsql 1、数据库操作 2、数据采集 3、人脸识别 一、PySimpleGUI PySimpleGUI 是一个用于简化 GUI 编程的 Python 包&#xff0c;它封装了多种底层 GUI 框架&#xff08;如 tkinter、…

动态代理IP的应用场景有哪些?

在数字化时代&#xff0c;数据的价值不言而喻&#xff0c;而动态代理IP则如同企业数据采集的隐形翅膀&#xff0c;助力企业在信息海洋中翱翔。本文将深入探讨动态代理IP的应用场景&#xff0c;揭示其如何帮助企业提升业务成功率&#xff0c;保障数据采集的安全性与稳定性。 动…

从实验室到晶圆厂:光刻胶剥离液的关键转变

根据QYResearch调研团队最新发布的《全球光刻胶剥离液市场报告2023-2029》显示&#xff0c;预计到2029年&#xff0c;全球光刻胶剥离液市场规模将攀升至15.8亿美元&#xff0c;未来几年将以8.9%的复合年增长率&#xff08;CAGR&#xff09;持续增长。 上述图表及数据均来源于QY…

基本开关电源电路分析

一、BOOST电路&#xff08;升压&#xff09;&#xff1a; 下图为Boost电路的最基本拓扑&#xff0c;从左至右包括电源&#xff0c;储能电感L1&#xff0c;开关管Q1&#xff0c;二极管D1&#xff0c;输出滤波电容C1及负载电阻R1。 工作原理&#xff1a; 开关管导通状态&#xf…

【解决】Pico 串流 Unity 开发环境 Preview 黑屏问题

开发平台&#xff1a;Unity 6.0 开发工具&#xff1a;Pico SDK   一、问题描述 在 Unity 开发环境下运行 测试 PicoVR 表现时&#xff0c;出现 Game视窗 PicoVR投屏 呈现黑屏效果。详细背景如下&#xff1a; UnitySwitch PlateformPICO Integration SDKPICO Live Preview6…

网站域名注册流程详解

随着互联网的普及&#xff0c;网站已经成为人们获取信息、传播观点和开展业务的重要途径。在创建自己的网站之前&#xff0c;第一步是选择并注册一个合适的域名。域名是您网站的地址&#xff0c;它将帮助用户找到您的在线空间。在这篇文章中&#xff0c;我们将详细介绍网站域名…

AI赋能人才管理:东软助力企业数字化转型

在数字化转型大潮席卷全球的今天&#xff0c;如何在新时代背景下实现高效、智能的管理升级&#xff0c;也成为了广大企业关注的焦点。 不久前&#xff0c;东软正式发布TalentBase数智人力资本管理产品&#xff0c;以AI人才管理模式为企业人力资源管理注入了新的活力。 数字化转…

专治拖延症❗❗提升学习效率的秘密武器⏰【当当狸智能时间管理器D2】养成高效自律好习惯

孩子有拖延的习惯&#xff0c;做事磨蹭拖拉&#xff0c;学习效率底下❓ 尤其是低年龄段的孩子时间观念不强&#xff0c; 所以就很懒散很被动&#xff0c;做事的效率也很低 缺乏时间管理能力的孩子可能会 面临学业压力增大、成绩下滑、情绪消极等后果❌ 所以&#xff0c;一…

Python字符串(一图秒了)

一、概念 在Python中用单引号或双引号引起来的内容 定义 s abc123 s "abc" s #空字符串 s "" #空字符串 s #空格字符串 s " " #空格字符串 注意&#xff1a;空格字符串不是空字符串 二、字符串的访问&…

Linux权限管理和文件属性

目录 1. 权限的概念 2. 权限管理 2.1 文件访问者的分类 2.2 文件类型和访问权限&#xff08;事物属性&#xff09; 2.2.1 文件类型 2.2.2 file指令 2.2.3 基本权限 3. 文件访问权限的相关设置方法 3.1 chmod 3.2 chown 和 chgrp 3.3 umask 4. 粘滞位 1. 权限的…

【Python实战案例】爬虫项目实例(附赠源码)

文章目录 声明安装必要的库项目结构技术细节小结 声明 请您遵守网站的robots文件规定&#xff0c;本文目的只是做学习交流使用&#xff0c;包括多个模块&#xff0c;例如数据存储、日志记录、错误处理、多线程或异步请求 安装必要的库 pip install requests beautifulsoup4 sq…