欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    SAPABAP程序设计基础教程第11章.ppt

    • 资源ID:6518228       资源大小:465KB        全文页数:51页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    SAPABAP程序设计基础教程第11章.ppt

    第11章ABAP面向对象编程,面向对象(Object-Oriented,即OO)是一种软件设计与开发的思想和方法,它按照人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的方法,通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应,该方法区别于传统的面向过程的程序设计,即通过过程或函数块来完成某些任务的传统程序设计方法。,对象(Object):对象是指客观世界中存在的各种各样的实体,也可以指具体或抽象的事物,不同的业务领域的模型关心的实体会不同,类(Class):类是具有相似内部状态和运动规律的实体的集合。消息(Message):消息是指对象间相互联系和相互作用的方式,类的特性,抽象(Abstraction)封装(Encapsulation)继承(Inheritance)多态(Polymorphism)重载(Overloading),面向对象的优点,面向对象可以使复杂的软件系统易于理解,因为面向对象的程序设计更好的实现了计算机语言对真实世界的抽象化和模拟。在设计良好的面向对象系统中,对系统的维护有可能被限定在类级别,即系统的重新设计只需要对类属性或方法进行修改,而不需要涉及所有其他系统元素,这将大大减轻系统的维护负担;通过多态和继承,面向对象程序设计可实现不同类之间的组件复用;对面向对象系统的修订和维护的工作量较一般系统而言将大量减轻,因为大部分的问题将在系统设计阶段被发现并加以改正。,类的声明与实现,类的声明部分的代码如下:CLASS class DEFINITION class_options PUBLIC SECTION.components 公共的类成员PROTECTED SECTION.受保护的类成员components PRIVATE SECTION.components 私有的类成员ENDCLASS.类的实现部分的代码如下:CLASS class IMPLEMENTATION.METHOD.ENDMETHOD.ENDCLASS.,类成员的可见范围,公共部分(PUBLIC SECTION):公共部分定义的类成员可以被所有的外部对象使用,包括类的方法及其派生类中定义的方法,公共部分的成员(尤其是方法)构成了类对外界的接口。保护部分(PROTECTED SECTION):保护部分定义的类成员只能被类及其派生类中的方法使用,对其它类或程序不可见。私有部分(PRIVATE SECTION):私有部分定义的类成员则只能被该类自身的其它成员所访问。,类的成员类型,在ABAP类中可以定义的成员类型有三种,即类的属性、方法和事件。属性:属性是类内部的数据对象,用于描绘类的状态。类的属性在类的声明部分进行定义,所有的ABAP类型都可以用于定义类的属性。在类属性的定义中,类的实例属性用DATA来定义,而类属性(静态的成员)则通过CLASS-DATA关键字来声明,如:CLASS test_class DEFINITION.PUBLIC SECTION.CLASS-DATA test_text TYPE string VALUE Hello World.PROTECTED SECTION.DATA counts TYPE i.ENDCLASS.,除使用DATA语句定义类属性外,还可以使用CONSTANT语句来定义类的常量成员,类常量不能在编译和运行期间修改,必须在类定义时指明其值;还可以使用TYPES语句在类中定义数据类型,数据类型也相当于静态属性,其定义方法与普通ABAP的程序类似,如:CLASS test_class DEFINITION.PUBLIC SECTION.CONSTANTS pi TYPE p VALUE 3.14.公共常量TYPES myid_type(18)TYPE c.自定义类型ENDCLASS.,方法:声明方法的关键字有METHODS和CLASSMETHODS;其中METHODS用于声明对象实例方法,而CLASSMETHODS用于声明类方法(静态方法),方法实现部分的代码应该放在关键字METHOD和ENDMETHOD之间。常用的方法声明语句语法如下:METHODS meth ABSTRACT|FINALIMPORTING VALUE(p1)|REFERENCE(p1)|p1 TYPE EXPORTING VALUE(p1)|REFERENCE(p1)|p1 TYPE CHANGING VALUE(p1)|REFERENCE(p1)|p1 TYPE RAISING|EXCEPTIONS exc1 exc2.在方法的实现部分,只需要实现代码而不需要重新声明这个接口。METHOD meth ENDMETHOD.,事件:在类的定义过程中,事件也可以被声明为类的成员,类的事件成员被声明之后,类的所有内部方法均可触发该事件,还可以在当前类或其他类中定义捕捉事件的方法以对事件进行处理和响应,类的创建,ABAP中通过Class Builder(事务代码为SE24)工具来创建一个全局类,全局类被定义在类型为K的ABAP类库程序中,该类型程序不包含事件块、子程序、屏幕等元素,也不包含公有数据部分,因而也不能为其分配事务代码,如果该类被另外一个程序使用,则整个类库将被载入到程序内存中。,创建全局类-1,在Object Navigator(SE80)中左侧的导航区域,在右键弹出的上下文菜单上选择“CreateClass LibraryClass”,创建全局类-2,在弹出的窗口中输入类名,在下个输入域输入该类的简短描述,在“Instantiation”输入域选择“Public”,并且选择“Final”复选框,Instantiation类的实例类型:PUBLIC表示该类的对象实例可以被所有用户创建、PROTECTED表示该类的对象实例只能被其本身或派生类创建,Private表示该类的对象实例只能通过其自身方法创建(Private)。Final 最终类:如果选择了该项,则全局类不能被其它类所继承。Only modeled模型类:用于说明该类只有图形化模型,而没有具体实现部分。,创建全局类的属性、方法、和方法参数,Object navigator中类及成员的组织,实现类的方法,对象实例的创建,一个类的声明与实现方法定义完成后,可以使用该类的对象实例来完成具体的功能,使用类的对象实例的步骤主要有如下几点:1、使用DATA语句中的TYPE REF TO选项定义一个指向该类型的一个引用变量(相当于定义一个指针)2、使用CREATE OBJECT语句创建对象3、通过“-”或“=”运算符访问对象或类组件,类成员的访问方式,对象的内存回收,方法的声明,类方法的参数接口部分是在类声明部分通过METHODS语句定义的,而且该接口不需要在类的实现部分再次出现,类的实例方法(Instance Methods)定义的语法如下:METHODS meth ABSTRACT|FINAL IMPORTING parameters EXPORTING parameters CHANGING parameters RETURNING VALUE()TYPE RAISING|EXCEPTIONS exc1 exc2.,方法的调用,类实例方法的调用语法,类方法(静态方法)的调用,函数方法,函数方法的多种调用方式,函数方法声明与实现,函数方法的调用方式,构造方法,构造方法的声明,构造方法的实现,构造方法的自动调用,类内部的命名空间,在一个ABAP类的内部有自己的命名空间,在命名空间之内的下列元素的名字不能重复:属性(Attributes)方法(Methods)事件(Event)内部类型(Types)常量(Constants)别名(ALIAS names),引用变量ME的用法,类继承,基类Person、子类Teacher和Student之间继承关系的定义,基类Person、子类Teacher和Student的类实现,基类Person、子类Teacher和Student的类对象实例方法的访问,构造函数的继承与重定义,抽象类与最终类,抽象类是不能有任何对象实例的基类,其目的就是用于被子类继承。有时一个基类具有多个子类,但该基类只是作为模板出现的,不具有任何被实例化的意义,则可以将该类声明为抽象类(Abstract Class)。CLASS class DEFINITION ABSTRACT.ENDCLASS抽象类中可以包含抽象方法,一个抽象方法不能在抽象类本身中被实现,而必须在其子类中被实现,含有抽象方法的类必须被定义为抽象类。,最终类(Final Class),是不能被继承的类,如果不希望一个类被继承,则可以定义该类为最终类,其定义语法为:CLASS class DEFINITION FINAL.ENDCLASS.最终类的成员方法是不可以重新定义的方法,最终类中的所有方法都是最终方法,因而无需指明FINAL关键字,而非最终类中的最终方法则必须按下述语句声明:METHODS method ABSTRACT一个最终类可以同时为抽象类,但此时类中只能包含静态成员才有意义;一个最终方法则不可以同时是抽象方法,因为不能被继承和重写的抽象方法是没有任何意义的。,基类与子类间的类型转换(Cast),窄转换(Narrowing Cast),宽转换(Widening Cast),接口,接口是类对外提供服务或行为表现的声明,是外部程序访问类服务的协议,接口仅仅宣称自己“能做什么”,而实际上接口本身“什么都不做”,即接口本身只提供行为或动作的声明,而不提供这些行为或动作的实现。,接口多态例-例1,接口多态例-例2,接口屏蔽-例3,接口的定义方法,接口的实现方法,接口的调用,事件,事件的本质也是方法的调用,但是相对于传统的直接的方法调用,事件机制是松偶合的,且更加的灵活,事件触发者向大家公布自己的状态发生改变,事件的接收方可以对该变化表现出兴趣或者作出反映;事件的触发方只是发布事件,并不知道具体的事件用户(接受者)是谁;事件的触发方对谁会收到事件的情况并不感兴趣。事件机制在图形化用户界面(GUI)领域得到广泛运用,如鼠标的点击事件,窗口的Open事件等。,在ABAP面向对象中,事件的触发和处理是通过特定的方法来完成的,一个方法作为触发者触发事件(Events Trigger),而另一个方法则作为事件处理者捕获并处理事件(Events user),事件触发者和事件的用户并不一定需要隶属于同一个类中或同一个对象中。,Bell类和Teacher类的定义部分,Bell类和Teacher类的实现部分,调用Bell类对象的打铃方法触发一系列处理过程,

    注意事项

    本文(SAPABAP程序设计基础教程第11章.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开