abap object-oriented--基本内容

引用:翱翔云天

abap object-oriented--基本内容

184 views

从今天开始abap oo之旅,主要写一些基础的,能够被轻松的理解的内容。Abaper们也要充电啊,毕竟oo是将来的大势所趋,再说多一技不压身,对自己总是有好处的。

首先介绍abap oo中经常用到的定义。无论任何面向对象编程的语言,类都是最基本的,而对象是类的实例,这也是最基本的知识。

对象有属性,有方法(有的书叫操作)。

同时面向对象语言可以实现很好的封装,以及多态。

下面我们一一介绍最基本的定义:

1. Public attributes

公有属性定义在public section中,其内容可以在类的外部看到,或者修改。

一条规则:尽量减少公共属性,如果问为什么,那么可以参考面向对象语言的特性:封装,尽可能在类的内部修改属性,留给外部的只有接口,避免外部直接操作类里面的属性(或称数据)。

2. Private attributes

只能在类的内部访问或者修改的数据,定义在private section里面。

3. Static attributes

在类中,每个静态属性都是唯一的。属性的值在所有类的实例中是相同的。用class-data声明。

4. Protected attributes

这些保护属性,定义在protected section里面,其作用是改区域里面的属性或者方法,不能被外部调用,但是在它的子类中是可见的,也就是说,其子类可以访问protected section中的数据,这和private section是不同的。

5. Public method, private method, static method, protected method

这些和对应的属性同上。

6. Constructor method

每个类都有一个隐含的方法,在java或c++中叫构造函数,注意,abap中没有析构函数(java好像也没有)。在其他语言中,构造函数和类名相同,但是在abap中,有一个保留的名字,叫做constructor。

当你调用create object创建对象的时候,这个函数会被执行。

Constructor可以分为instance constructor以及static constructor。

对于instance constructor(声明的时候使用methods),可以有import参数以及exceptions,而static constructor(声明的时候使用class-methods),没有参数传递。

注意:static constructor一定会在以下动作之前执行

1).创建对象,create object

2).访问静态属性,class=>attribute

3).调用静态方法,call method class=>method

4).注册一个静态事件句柄,static event handler

7. Polymorphism: 多态性

当一个相同的方法在不同的类中有不同的实现就是多态。

在abap中,多态可以有两种实现方法:

1).通过继承实现

2).通过接口实现

8. Interface:接口

在abap中,接口需要另外实施(其实就是在类中实施),同时有独立于类。

在接口中只有声明部分,而没有具体的实施部分。

1).接口必须在类的公共部分列出(public section)

2).接口中的操作在类中实现,并且作为类的方法;所有接口中的方法必须在类的实现部分实施。

3).在接口中定义的属性,事件,常量,类型等在声明它的类中自动可见。

4).实施接口的方法:interface~component name

你可能感兴趣的:(object)