SAP OO

1. 概述

  • 从SAP R/3 4.0版本开始,abap就引入了面向对象的开发概念.
  • abap语言大发展:
    • 宏编译器
    • abap语言出现-面向过程
    • abap语言-面向对象
      • abap对象是abap的扩展,集合了java,c++,smalltalk等语言的特点,和原来的abap无缝继承
  • 面向对象解决方法中,重点放在了对象是想生活中的对象结构化或抽象化
    • 属性: 对象的属性及特征
    • 方法: 定义对象的行为
  • 类的优点
    • 可以重复利用代码
    • 可以封装数据

2.面向对象的特点

  • 抽象

    • 实现客观世界实体化的模块
  • 封装
    • 把客观事物封装成抽象的类,并且可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行隐藏
    • (把对象私有化)
  • 继承
    • 它可以使用现有的类的所有功能,并且无需重新编写原来的类的情况下对这些功能进行扩展
    • (父子关系)
  • 多态
    • 允许你将父类对象设置成为和一个或更多的她的子对象等技术,赋值之后,父对象就可以根据当前赋值给他的子对象的特性以不同的方式运作.
    • 允许将子类类型的指针赋值给父类类型的指针.
    • (子类可以访问父类)

3.类与对象

  • 什么是对象?

    • 要使用所需功能的对象,首先要经过根据类定义对象的过程
    • 根据类创建对象的过程为实例,根据类创建的对象为实例
  • CLASS:类是创建对象的模板
  • OBJECT:对象是指商品/物体/对象/目的/,是类的实例
  • 类的区分
    • 全局类: 事务代码se24

      • 存储在类型池中
      • 所用abap程序都可以对其进行访问
    • 本地类
      • 在程序中定义’
      • 只有该程序可以使用

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面向对象理论知识(部分一)相关推荐

  1. 关于DDD领域驱动设计的理论知识收集汇总

    最近一直在学习领域驱动设计(DDD)的理论知识,从网上搜集了一些个人认为比较有价值的东西,贴出来和大家分享一下: 我一直觉得不要盲目相信权威,比如不能一谈起领域驱动设计,就一定认为国外的那个Eric ...

  2. 用VC进行COM编程所必须掌握的理论知识

    用VC进行COM编程所必须掌握的理论知识 这篇文章是给初学者看的,尽量写得比较通俗易懂,并且尽量避免编程细节.完全是根据我自己的学习体会写的,其中若有技术上的错误之处,请大家多多指正. 一.为什么要用 ...

  3. 数据库入门理论知识介绍以及编译安装MySql

    数据库入门理论知识介绍以及编译安装MySql 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 1.目前90%以上的公司面临的运维的瓶颈都在后端 最常见的2大瓶颈就是: 1&g ...

  4. SAP FICO 财务成本知识

    SAP FICO 财务成本知识 -------------------------------------------------------------------------------- 网上找 ...

  5. 计算机操作工中级理论,计算机操作员中级理论知识复习题及答案.doc

    文档介绍: 计算机操作员中级理论知识复****题及答案 第1次课 9月1日星期一 1.2节计算机一班 一.单项选择 1. 十六进制1F可转换成十进数( D ). A.15 B.30 C.32 D.31 ...

  6. 计算机四级理论知识试卷答案,计算机程序设计员四级理论知识试卷

    计算机程序设计员四级理论知识试卷 计算机程序设计员四级理论知识试卷 一.单项选择(第1题-第160题.选择一个正确的答案,将相应的字母填入题内的括号中.每题0.5分,满分80分.) 1. 有关&quo ...

  7. 【设计模式系列】之OO面向对象设计七大原则

    1  概述 本章叙述面向向对象设计的七大原则,七大原则分为:单一职责原则.开闭原则.里氏替换原则.依赖倒置原则.接口隔离原则.合成/聚合复用原则.迪米特法则. 2  七大OO面向对象设计 2.1 单一 ...

  8. Java 游戏开发:关于Java面向对象的知识(一)

    Java 游戏开发:关于Java面向对象的知识(一) 软件的生命周期(了解即可) 由于我们是大专生 这里的生命周期是之前软件工程的笔记,你们了解就可以了 什么是软件的生命周期 一个软件从被开发到被正式 ...

  9. Java理论知识及面试题

    一.springMVC 的工作(实现)原理? 工作原理 1.客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在w ...

最新文章

  1. sklearn API 文档 - 0.18 中文翻译
  2. 黄牛凭什么抢走我们的票?
  3. SAP 将smartforms的报表转成PDF
  4. 带缓冲的IO和不带缓冲的IO
  5. Win32串口操作的技巧
  6. linux系统lsmod命令,linux lsmod命令 及相关信息
  7. apache isis_使用Apache Isis快速进行SEMAT应用程序开发
  8. python语言format用法_python格式化输出之format用法
  9. Java笔记-获取自己资源文件中的配置文件(打包成jar包为其他包所引用也能获取)
  10. (计算机组成原理题目题型总结)第一章:计算机系统概述
  11. Java教程:Java return语句
  12. idea导入项目无法解析java
  13. 小型微型计算机系统2006,小型微型计算机系统杂志
  14. Verilog 级联IIR滤波器设计
  15. buuctf XCTF October 2019 Twice SQL Injection 二次注入原理+题解
  16. php截取部分pdf,如何将一个pdf文档拆分成多个
  17. 电路交换、报文交换、分组交换、异步传输模式等通信交换技术的区别
  18. 移动机器人五种坐标系
  19. java计算机毕业设计桂林恒保健康防护有限公司官网MyBatis+系统+LW文档+源码+调试部署
  20. 论文阅读笔记《Locality Preserving Matching》

热门文章

  1. 不同格式图片相互转换的开源库分享
  2. 网页多种版心适应多屏幕技巧
  3. 用‘+‘替换字符串中的所有空格[复制]
  4. 软测(五)Web自动化测试下
  5. 吴恩达深度学习deeplearning.ai——第一门课:神经网络与深度学习——第三节:浅层神经网络
  6. Android Widget进阶——桌面便笺程序实例的实现流程与美化设计(图)
  7. 30以上java程序员出路,详细说明
  8. 古典之颠 科技之耀:看裂帛CIO大麦打造互联网品牌的生态牧场
  9. 图神经网络中同质图与异质图等区别
  10. 华为鸿蒙系统老手机能用吗_华为鸿蒙系统是否用于手机还未确定 华为手机还会继续用安卓系统吗...