[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)
相关文章:
[SAP ABAP] 面向对象程序设计-类和对象
面向对象开发的特点:封装、继承和多态 什么是类和对象? 类(CLASS)是创建对象的模板,对象(OBJECT)是类的实例 一个类可以创建多个对象 类 > 类型 对象 > 个体 在ABAP语言中,定义一个类,需要包含定义(defin…...
『大模型笔记』IBM技术团队:什么是智能体型RAG!
『大模型笔记』IBM技术团队:什么是智能体型RAG! 文章目录 一. 『大模型笔记』IBM技术团队:什么是智能体型RAG!二. 参考文献一. 『大模型笔记』IBM技术团队:什么是智能体型RAG! ✅检索增强生成(RAG)是一种结合检索和生成能力的技术,通过从向量数据库检索相关信息作为上…...
WPF 中 NavigationWindow 与 Page 的继承关系解析
官网解析: NavigationWindow 类 | Page 类 public class BaseWindow: NavigationWindow{} public partial class CountPage : Page{} 都是创建的WPF界面有什么区别? 在 WPF(Windows Presentation Foundation)开发中&#…...
WebRTC基础理论和通话原理
WebRTC理论知识 1.什么是WebRTC? WebRTC(Web RealTime Communication)是 Google于2010以6829万美元从 Global IP Solutions 公司购买,并 于2011年将其开源,旨在建立一个互联网浏览器间的实时通信的平台,让 WebRTC技术…...
NPU 可不可以代替 GPU
结论 先说结论,GPU分为可以做图形处理的传统意义上的真GPU,做HPC计算的GPGPU和做AI加速计算的GPGPU,所以下面分别说: 对于做图形处理的GPU,这个就和NPU 一样,属于DSA,没有替代性。当然…...
Vue3版本的uniapp项目运行至鸿蒙系统
新建Vue3版本的uniapp项目 注意,先将HbuilderX升级至最新版本,这样才支持鸿蒙系统的调试与运行; 按照如下图片点击,快速升级皆可。 通过HbuilderX创建 官方文档指导链接 点击HbuilderX中左上角文件->新建->项目 创建vue3…...
部署stable-diffusion3.5 大模型,文生图
UI 使用推荐的ComfyUI,GitHub 地址,huggingface 需要注册登录,需要下载的文件下面有说明 Dockerfile 文件如下: FROM nvidia/cuda:12.4.0-base-ubuntu22.04 RUN apt-get update && apt-get install python3 pip git --n…...
数据采集之selenium模拟登录
使用Cookijar完成模拟登录 本博文爬取实例为内部网站,请sduter使用本人账号替换*********(学号),***(姓名)进行登录 from selenium import webdriver from selenium.webdriver.common.by import By from…...
机器学习中的两种主要思路:数据驱动与模型驱动
在机器学习的研究和应用中,如何从数据中提取有价值的信息并做出准确预测,是推动该领域发展的核心问题之一。在这个过程中,机器学习方法主要依赖于两种主要的思路:数据驱动与模型驱动。这两种思路在不同的应用场景中发挥着至关重要…...
【计算机网络】TCP协议面试常考(一)
三次握手和四次挥手是TCP协议中非常重要的机制,它们在多种情况下确保了网络通信的可靠性和安全性。以下是这些机制发挥作用的一些关键场景: 三次握手的必要性: 同步序列号: 三次握手确保了双方的初始序列号(ISN&#…...
C#/.NET/.NET Core学习路线集合,学习不迷路!
前言 C#、.NET、.NET Core、WPF、WinForm、Unity等相关技术的学习、工作路线集合(持续更新)!!! 全面的C#/.NET/.NET Core学习、工作、面试指南:https://github.com/YSGStudyHards/DotNetGuide C#/.NET/.N…...
使用哈希表做计数排序js
function hashSort(arr) {// 创建一个哈希表(对象),统计每个数字出现的次数let hashMap {};arr.forEach(num > {if (hashMap[num]) {hashMap[num] 1;} else {hashMap[num] 1;}});// 根据哈希表的键值对构建排序后的数组let sortedArr …...
京津冀自动驾驶技术行业盛会|2025北京自动驾驶技术展会
“自动驾驶技术”已经成为全球汽车产业的焦点之一。在这个充满创新与变革的时代,“2025北京国际自动驾驶技术展览会”拟定于6月份在北京亦创国际会展中心盛大开幕,为全球自动驾驶技术领域的专业人士、企业以及爱好者们提供了一个交流与展示的平台。作为一…...
Chrome与火狐哪个浏览器的隐私追踪功能更好
当今数字化时代,互联网用户越来越关注在线隐私保护。浏览器作为我们探索网络世界的重要工具,其隐私追踪功能的强弱直接影响到个人信息的安全。本文将对比Chrome和Firefox这两款流行的浏览器,在隐私追踪防护方面的表现,并探讨相关优…...
探索 Python 图像处理的瑞士军刀:Pillow 库
文章目录 探索 Python 图像处理的瑞士军刀:Pillow 库第一部分:背景介绍第二部分:Pillow库是什么?第三部分:如何安装这个库?第四部分:简单的库函数使用方法第五部分:结合场景使用库第…...
JavaScript中的if、else if、else 和 switch
写在前面 在编程中,条件判断是控制程序流程的重要手段。JavaScript 提供了多种方式来进行条件判断,包括 if、else if、else 和 switch。本文将详细介绍这些语句的语法、用法以及一些相关的注意事项。 if、else if 和 else 语法 if、else if 和 else …...
Python 使用 langchain 过程中的错误总结
1. 环境 conda activate langchain pip install -U langchain$ pip show langchain Name: langchain Version: 0.3.7 Summary: Building applications with LLMs through composability Home-page: https://github.com/langchain-ai/langchain Author: Author-email: Licens…...
MySQL基础篇总结
基本SQL语句分类 DDL(数据定义语言) 数据定义语言,用来定义数据库对象(数据库、表、字段)。 数据控制语言,用来创建数据库用户、控制数据库的控制权限。 数据库操作 查询所有数据库: SHOW DATABASES; 查询当前数据库…...
全面解析:网络协议及其应用
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 # 全面解析:网络协议及其应用 文章目录 网络协议概述定义发展历程主要优势 主要网络协议应用层协议传输层协议网络层…...
一文了解Java序列化
Java 序列化(Serialization)是将对象的状态转换为字节流,以便将对象的状态保存到文件中或通过网络传输的过程。反序列化(Deserialization)则是将字节流恢复为原始对象。Java 序列化主要通过 Serializable 接口实现。 为…...
银河麒麟V10找不到应用商店?手把手教你从源码编译安装录屏神器Capture(附ffmpeg配置避坑)
银河麒麟V10系统下从源码构建专业录屏工具Capture的全流程指南 在国产操作系统银河麒麟V10上,许多用户发现系统默认没有提供应用商店,导致无法直接安装常用的录屏工具。本文将详细介绍如何从源码编译安装功能强大的录屏软件Capture,并解决ARM…...
CameraFileCopy:创新实现手机摄像头离线文件传输的完整解决方案
CameraFileCopy:创新实现手机摄像头离线文件传输的完整解决方案 【免费下载链接】cfc Demo/test android app for libcimbar. Copy files over the cell phone camera! 项目地址: https://gitcode.com/gh_mirrors/cfc/cfc 在无线网络无处不在的今天ÿ…...
Linux查看文件内容
🏷️ 标签:Linux 查看文件 文件类型 Linux命令 运维 后端开发 📝 适用人群:Linux 新手、运维、后端、学生、实训使用 💡 亮点:包含 查看文件类型 查看整个文件 查看部分文件,结构清晰、示例可…...
【Lovable开发者私藏资源包】:含官方未公开API文档、调试插件源码与CI/CD配置清单
更多请点击: https://kaifayun.com 第一章:Lovable应用开发完整教程 Lovable 是一个面向现代 Web 应用的轻量级响应式框架,专为构建高交互性、可访问性强且易于维护的单页应用(SPA)而设计。它不依赖虚拟 DOMÿ…...
UniVRM完整指南:Unity中VRM格式的7个实战技巧与高效配置方法
UniVRM完整指南:Unity中VRM格式的7个实战技巧与高效配置方法 【免费下载链接】UniVRM UniVRM is a gltf-based VRM format implementation for Unity. English is here https://vrm.dev/en/ . 日本語 はこちら https://vrm.dev/ 项目地址: https://gitcode.com/gh…...
Windows 11 Fixer终极指南:一键优化你的Windows 11系统体验
Windows 11 Fixer终极指南:一键优化你的Windows 11系统体验 【免费下载链接】Windows-11-Fixer A tool to "Fix" Windows 11 项目地址: https://gitcode.com/gh_mirrors/wi/Windows-11-Fixer Windows 11 Fixer是一款专为Windows 11用户设计的系统优…...
Qt 高级开发 009: C++ Lambda 表达式
Qt 高级开发 009: C Lambda 表达式Bilibili 同步视频🔎 一、Lambda 表达式:到底是什么?🧩 二、Lambda 完整结构:六大核心组件1. 捕获列表 [ ] 🎫2. 参数列表 ( ) 📥3. mutable 关键字…...
如何学会自己写代码控制STM32(裸机)-GPIO篇
//总结自己的工作经验,帮助学习单片机的入门者,快速上手写代码该文章是基于STM32F401裸机代码编写思路,后续会更新增加STM32FreeRTOS首先想要写单片机的程序,你必须有扎实的C语言基础,从我多次面试的经验总结ÿ…...
良心云用户如何快速接入Taotoken实现大模型API调用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 良心云用户如何快速接入Taotoken实现大模型API调用 对于在良心云服务器上部署应用的开发者而言,将大模型能力集成到自己…...
CUK电路仿真结果
简 介: 本文通过LTSpice仿真分析了电感耦合Cuk反向电源电路的工作原理。该电路采用LTC3704芯片和双线圈耦合结构,具有高转换效率和大输出电流特性。仿真结果显示,在理想耦合系数下,输出电压波动极小,即使减小滤波电容仍…...
