SAP OO面向对象理论知识(部分一)
SAP OO
1. 概述
- 从SAP R/3 4.0版本开始,abap就引入了面向对象的开发概念.
- abap语言大发展:
- 宏编译器
- abap语言出现-面向过程
- abap语言-面向对象
- abap对象是abap的扩展,集合了java,c++,smalltalk等语言的特点,和原来的abap无缝继承
- 面向对象解决方法中,重点放在了对象是想生活中的对象结构化或抽象化
- 属性: 对象的属性及特征
- 方法: 定义对象的行为
- 类的优点
- 可以重复利用代码
- 可以封装数据
2.面向对象的特点
- 抽象
- 实现客观世界实体化的模块
- 封装
- 把客观事物封装成抽象的类,并且可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行隐藏
- (把对象私有化)
- 继承
- 它可以使用现有的类的所有功能,并且无需重新编写原来的类的情况下对这些功能进行扩展
- (父子关系)
- 多态
- 允许你将父类对象设置成为和一个或更多的她的子对象等技术,赋值之后,父对象就可以根据当前赋值给他的子对象的特性以不同的方式运作.
- 允许将子类类型的指针赋值给父类类型的指针.
- (子类可以访问父类)
3.类与对象
- 什么是对象?
- 要使用所需功能的对象,首先要经过根据类定义对象的过程
- 根据类创建对象的过程为实例,根据类创建的对象为实例
- CLASS:类是创建对象的模板
- OBJECT:对象是指商品/物体/对象/目的/,是类的实例
- 类的区分
- 全局类: 事务代码se24
- 存储在类型池中
- 所用abap程序都可以对其进行访问
- 本地类
- 在程序中定义’
- 只有该程序可以使用
- 全局类: 事务代码se24
4.程序中类的创建
定义类的构成项目(属性方法事件)
class <class> definition .要素声明所有项目都需要定义在三个访问区域之一中 endclass.
实现类的方法
class<class> implementation endclass.
5.class构成要素
- 构成要素的分类
- 实例组件
- 参照类创建对象时,内存中存在的项目,每次创建对象时都会被初始化.各个类的对象中都存在
- 声明方式
- 属性: data
- 方法:methods
- 访问:object->comp
- 静态组件
- 遇到创建类的语句开始,直到程序结束都存储与内存中,是依赖类存在的项目.及时创建对象,诺已存在与内存中即可直接使用
- 声明方式:
- 属性:class-data
- 方法:class-methods
- 访问:class=>comp
- 实例组件
- 类的所有要素在声明部分部分实现
- 属性
- 可以拥有abap多有数据类型的类内部数据字段,对象状态由属性决定.data/constants
- 方法
- 用来定义决定对象行为的类内部执行步骤,可以访问类的所有属性,切可通过方法修改对象的内容,了另外,方法提供传入传出参数,便于用户交互
- 事件
- 事件是没有继承关系的,类之间可以相互调用彼此方法的特殊方法.
- 属性
6.区域访问权限
- public section 公有部分
- 内/外部可见
- public部分的组件,构成类与用户的接口
- protected section 保护部分
- 内部和继承可见,外部不可见
- protected部分组件,构成继承类之间的接口
- private section 私有部分
- 内部可见,继承可见,外部不可见
内部 外部 继承
public section 可 可 可
protected section 可 否 可
private section 可 否 否
7.方法
- 方法的基本语法
method <meth> importing <i1> type <type> exporting <e1> type <type> changing <c1> type <type> exceptions x1
call method [oref->|class=>]meth exporting i1 = f1 receiving r = h.
- import/export:
- 数据输入/输出接口,接口参数可以参考变量,结构,或者内表
- changing
- 同时作为输入输出接口,接口可以参考单个变量,接口或者内表
- returning
- 返回类传递数值.该定义不能和changing/exporting同时使用
- exceptions
- 返回执行中所出现的错误
- 类函数可以拥有多个输入参数,但只能有一个输出参数.类的输出接口参数必须与类函数中定义类型保持一致.
8.构造方法
- 在实例化对象时,自动完成对象的初始化,并且这个对象是空的.
- 如果希望每一个对象都为其初始化某些特征,需要用到构造方法.
- 没有返回数据类型,功能是在实例化类型时完成一些初始化工作
- 使用METHODS CONSTRUCTOR 定义
- 或者CLASS-METHODS CLASS_CONSTRUCTOR 定义
- 每个类只能有一个构方法,在CREATE OBJECT语句中自动调用构造方法
- 何时使用构造方法
- 需要分配外部资源
- 需要初始化一些不能用data语句的value指定的属性值
- 需要修改静态属性
- 通常不能显式的调用构造器
9.类的继承
- 什么是类的继承?
- 继承的本质是代码的重用,当要构造一个新类型时,无需从零开始,可以参考一个已有类,在其基础上建立一个新类
- 参考:基类/父类,新建类:派生类/子类
- 派生类可以继承基类所有的属性和方法,并可以在此基础上添加新的特征
- 语法
class <subclass> definition inheriting from <suoerclass>
- 多态性类继承的实现
- 由于每个派生类的属性不同,相同的基类对象在不同的派生类中需要以不同的方式来表现,因此提出多态概念.
- 在派生类中定义和基类相同的接口,但是可以使用不同的代码来实现.
- 语法
method <meth> redefinition.
- 在派生类中使用基类的方法,使用
super:call method super-><meth>
- 方法的重载
me:call method me-><meth>.
SAP OO面向对象理论知识(部分一)相关推荐
- 关于DDD领域驱动设计的理论知识收集汇总
最近一直在学习领域驱动设计(DDD)的理论知识,从网上搜集了一些个人认为比较有价值的东西,贴出来和大家分享一下: 我一直觉得不要盲目相信权威,比如不能一谈起领域驱动设计,就一定认为国外的那个Eric ...
- 用VC进行COM编程所必须掌握的理论知识
用VC进行COM编程所必须掌握的理论知识 这篇文章是给初学者看的,尽量写得比较通俗易懂,并且尽量避免编程细节.完全是根据我自己的学习体会写的,其中若有技术上的错误之处,请大家多多指正. 一.为什么要用 ...
- 数据库入门理论知识介绍以及编译安装MySql
数据库入门理论知识介绍以及编译安装MySql 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 1.目前90%以上的公司面临的运维的瓶颈都在后端 最常见的2大瓶颈就是: 1&g ...
- SAP FICO 财务成本知识
SAP FICO 财务成本知识 -------------------------------------------------------------------------------- 网上找 ...
- 计算机操作工中级理论,计算机操作员中级理论知识复习题及答案.doc
文档介绍: 计算机操作员中级理论知识复****题及答案 第1次课 9月1日星期一 1.2节计算机一班 一.单项选择 1. 十六进制1F可转换成十进数( D ). A.15 B.30 C.32 D.31 ...
- 计算机四级理论知识试卷答案,计算机程序设计员四级理论知识试卷
计算机程序设计员四级理论知识试卷 计算机程序设计员四级理论知识试卷 一.单项选择(第1题-第160题.选择一个正确的答案,将相应的字母填入题内的括号中.每题0.5分,满分80分.) 1. 有关&quo ...
- 【设计模式系列】之OO面向对象设计七大原则
1 概述 本章叙述面向向对象设计的七大原则,七大原则分为:单一职责原则.开闭原则.里氏替换原则.依赖倒置原则.接口隔离原则.合成/聚合复用原则.迪米特法则. 2 七大OO面向对象设计 2.1 单一 ...
- Java 游戏开发:关于Java面向对象的知识(一)
Java 游戏开发:关于Java面向对象的知识(一) 软件的生命周期(了解即可) 由于我们是大专生 这里的生命周期是之前软件工程的笔记,你们了解就可以了 什么是软件的生命周期 一个软件从被开发到被正式 ...
- Java理论知识及面试题
一.springMVC 的工作(实现)原理? 工作原理 1.客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在w ...
最新文章
- sklearn API 文档 - 0.18 中文翻译
- 黄牛凭什么抢走我们的票?
- SAP 将smartforms的报表转成PDF
- 带缓冲的IO和不带缓冲的IO
- Win32串口操作的技巧
- linux系统lsmod命令,linux lsmod命令 及相关信息
- apache isis_使用Apache Isis快速进行SEMAT应用程序开发
- python语言format用法_python格式化输出之format用法
- Java笔记-获取自己资源文件中的配置文件(打包成jar包为其他包所引用也能获取)
- (计算机组成原理题目题型总结)第一章:计算机系统概述
- Java教程:Java return语句
- idea导入项目无法解析java
- 小型微型计算机系统2006,小型微型计算机系统杂志
- Verilog 级联IIR滤波器设计
- buuctf XCTF October 2019 Twice SQL Injection 二次注入原理+题解
- php截取部分pdf,如何将一个pdf文档拆分成多个
- 电路交换、报文交换、分组交换、异步传输模式等通信交换技术的区别
- 移动机器人五种坐标系
- java计算机毕业设计桂林恒保健康防护有限公司官网MyBatis+系统+LW文档+源码+调试部署
- 论文阅读笔记《Locality Preserving Matching》
热门文章
- 不同格式图片相互转换的开源库分享
- 网页多种版心适应多屏幕技巧
- 用‘+‘替换字符串中的所有空格[复制]
- 软测(五)Web自动化测试下
- 吴恩达深度学习deeplearning.ai——第一门课:神经网络与深度学习——第三节:浅层神经网络
- Android Widget进阶——桌面便笺程序实例的实现流程与美化设计(图)
- 30以上java程序员出路,详细说明
- 古典之颠 科技之耀:看裂帛CIO大麦打造互联网品牌的生态牧场
- 图神经网络中同质图与异质图等区别
- 华为鸿蒙系统老手机能用吗_华为鸿蒙系统是否用于手机还未确定 华为手机还会继续用安卓系统吗...