欢迎来到天天文库
浏览记录
ID:37775548
大小:506.00 KB
页数:51页
时间:2019-05-30
《SAPABAP程序设计基础教程第11章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章ABAP面向对象编程面向对象(Object-Oriented,即OO)是一种软件设计与开发的思想和方法,它按照人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的方法,通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应,该方法区别于传统的面向过程的程序设计,即通过过程或函数块来完成某些任务的传统程序设计方法。对象(Object):对象是指客观世界中存在的各种各样的实体,也可以指具体或抽象的事物,不同的业务领域的模型关心的实体会不同,类(Class):类是具有相似内部状态和运动规律的实体的集合。消息(Message):
2、消息是指对象间相互联系和相互作用的方式类的特性抽象(Abstraction)封装(Encapsulation)继承(Inheritance)多态(Polymorphism)重载(Overloading)面向对象的优点面向对象可以使复杂的软件系统易于理解,因为面向对象的程序设计更好的实现了计算机语言对真实世界的抽象化和模拟。在设计良好的面向对象系统中,对系统的维护有可能被限定在类级别,即系统的重新设计只需要对类属性或方法进行修改,而不需要涉及所有其他系统元素,这将大大减轻系统的维护负担;通过多态和继承,面向对象程序设计可实现不同类之间的组件复用;对面向对象系统的修订和维护的工作量较一般系
3、统而言将大量减轻,因为大部分的问题将在系统设计阶段被发现并加以改正。类的声明与实现类的声明部分的代码如下:CLASSclassDEFINITION[class_options][PUBLICSECTION.[components]]"公共的类成员[PROTECTEDSECTION."受保护的类成员[components]][PRIVATESECTION.[components]]"私有的类成员ENDCLASS.类的实现部分的代码如下:CLASSclassIMPLEMENTATION....METHOD......ENDMETHOD....ENDCLASS.类成员的可见范围公共部分(PU
4、BLICSECTION):公共部分定义的类成员可以被所有的外部对象使用,包括类的方法及其派生类中定义的方法,公共部分的成员(尤其是方法)构成了类对外界的接口。保护部分(PROTECTEDSECTION):保护部分定义的类成员只能被类及其派生类中的方法使用,对其它类或程序不可见。私有部分(PRIVATESECTION):私有部分定义的类成员则只能被该类自身的其它成员所访问。类的成员类型在ABAP类中可以定义的成员类型有三种,即类的属性、方法和事件。属性:属性是类内部的数据对象,用于描绘类的状态。类的属性在类的声明部分进行定义,所有的ABAP类型都可以用于定义类的属性。在类属性的定义中,类
5、的实例属性用DATA来定义,而类属性(静态的成员)则通过CLASS-DATA关键字来声明,如:CLASStest_classDEFINITION.PUBLICSECTION.CLASS-DATAtest_textTYPEstringVALUE‘HelloWorld’.PROTECTEDSECTION.DATAcountsTYPEi.ENDCLASS.除使用DATA语句定义类属性外,还可以使用CONSTANT语句来定义类的常量成员,类常量不能在编译和运行期间修改,必须在类定义时指明其值;还可以使用TYPES语句在类中定义数据类型,数据类型也相当于静态属性,其定义方法与普通ABAP的程序类
6、似,如:CLASStest_classDEFINITION.PUBLICSECTION.CONSTANTSpiTYPEpVALUE'3.14'."公共常量TYPESmyid_type(18)TYPEc."自定义类型ENDCLASS.方法:声明方法的关键字有METHODS和CLASSMETHODS;其中METHODS用于声明对象实例方法,而CLASSMETHODS用于声明类方法(静态方法),方法实现部分的代码应该放在关键字METHOD和ENDMETHOD之间。常用的方法声明语句语法如下:METHODSmeth[ABSTRACT
7、FINAL][IMPORTING{VALUE(p1)}
8、{R
9、EFERENCE(p1)}
10、p1}TYPE][EXPORTING{VALUE(p1)}
11、{REFERENCE(p1)}
12、p1}TYPE][CHANGING {VALUE(p1)}
13、{REFERENCE(p1)}
14、p1}]TYPE][{RAISING
15、EXCEPTIONS}exc1exc2...].在方法的实现部分,只需要实现代码而不需要重新声明这个接口。METHODmeth……
此文档下载收益归作者所有