开发基础 报表教程 数据字典 对话编程 表单打印 增强出口 SAP接口 S/4 HANA
实战案例 实战笔记 资料下载 CRM
问答互助 会员分享 俱乐部 广告区
论坛指南、建议和投诉
Twilight发表于 2014-02-22 16:47Twilight 最后回复于 2014-02-22 16:47 [复制链接] 5735 0
使用道具 举报
Twilight
管理员
发表回复 回帖后跳转到最后一页
面向过程为主的abap体系为了适应现代软件工程发展的趋势和ERP的进化,也逐渐,应该是不得不,推出一些面向对象的机制。尽管与其它纯粹为OO而生的语言体系比显得幼稚和笨拙,但必竟还是从无到有的具备了一些面向对象的优越性,更重要的是,目前SAP开发还是以ABAP为主的--尽管其早就宣布兼容java,所以,只能忍着(看来,忍是一种智慧,这种智慧无处不在,从为人到处事,从学习到工作,呵,忍得乱花渐欲迷人眼,才能习得仗剑走江湖,才能守得云开见月明),只能扬长避短,只能戴着镣铐跳舞。
一、面向对像的基本要素
1、封装
对象可以对其内问好资源的可见性进行限定,每个对象都有一个接口,决定了其它对象如何与之相互交互
2、多态 abap面向对象中的多态使用教程
相同名称的方法在不同的类中呈现出不同的行为。
3、继承 abap面向对象中的继承使用教程
可以从已存在类的基础上建立新的派生类,派生类可以继承原有类的方法与属性,或者添加新的
二、小例子执行效果:
主程序代码:
程序中的类定义和声明
abap中使用class /endclass语句进行类定义,且有声明部分和具体实现部分组成,类声明部分中包含类成员(具体包括类的属性,方法和事件等)的名称及说明,类的实现部分则包含具体的类方法的实现代码。
如果将类定义与传统计的abap语言进行比较,类中的声明部分相当于原有的数据定义及声明部分,则实现部分相当于具体代码部分,其中类方法相当于子程序、功能模块等过程代码模块,
成员的可见性:类的各个成员必须在definition部分进行声明,在此之前,需要确定该组件的可见性,成员的可见性应基于封装原则确定,对于面向对像中的类来说,其外部接口应该是易于接受且基本稳定的;
成员类型:abap中可以定义三种不同的成员类型,分别是属性、方法、和事件,各成员的可见性以及生存周期在类定义的同时被确定;属性是在类内部的数据对像,用于描绘类的状态;对于静态属性
使用 class-data语句定义
上述代码在类vehicle中定义了一个静态属性class_name和一个实例属性speed。对于公有组件,可以在属性定义语句中增加read-only关键字,则该属性不能被类外部读取,但可被类的内部方法所修改,除data语句外也可以使用constant语句定义类常量,类常量不能在编译和运行期内修改,必须在类定义时,指明其值,因为其性质类似于静态属性,类似地,可以使用type语句在类中定义数据类型,数据类型也相当于静态属性,
方法是对像行为的实现部分.可以将其视为是类中的过程,与过程类似,方法是与外界存在接口的程序块,也是一种处理块;在方法中,可以定义内部数据。实例方法只能访问该对像实例中的所有属性和事件,而静态方法则只能访问类的静态属性和事件;要调用实例方法,必须首先创建一个类实例,再通过该实例调用方法;而调用类的静态方法时,则可通过实例或者类本身调用。