全局class和interface和特殊的ABAP OO技术

全局classinterface的方法可以被单独传送。

Abstract class不能被instantiate,其方法不能被implement,而必须在subclassredefineAbstract class的指针可以指向其subclass。可以在create object中指明创建那个子类的实例。

Abstract method的可以看作是其子类的特殊的interface。其必须在子类中redefine。具有一个以上的abstract method的类本身也是abstractConstructorstatic method不能被abstract

Final class不能被继承,其方法自然也是finalFinal method不能被sub class redefinitionMethod不能既是final又是abstract。而类可以,这种情况表明这种类只有abstract部分可以被使用。

通过CREATE PUBLICCREATE PROTECTEDCREATE PRIVATE可以控制class可以被实例化的范围。利用CREATE PRIVATEFINAL 可以实现singletom concept。通过classstatic来创建实例然后通过classpublic static component来指向这个实例,这样外部就可以访问这个实例了。

CLASSfriends可以访问的类的任何component,并可以在任何情况下创建类的实例,不管是使用了create publiccreate protected还是create privateFriendship是单向的。Friendship的继承:classfriend的子类全部都是该类的friend,而class的子类则不是classfriendfriend

Persistent service用来实现OO的方式操作数据库中的数据。

理论上ABAP程序是和internal session中的数据和对象一块工作的,程序执行完毕这些数据和对象也就消失了,当需要把数据永久存储时就需要数据库操作了。ABAP OO数据库操作是通过OPEN SQL来实现的。为了永久保存ABAP OBJECT就引入了persistend service  的概念。R/3 basis release 610以后的版本就可以把ABAPOBJECT和他的属性存入到数据库并重新导入了。

Persistent classobjects是通过persistent service来管理的,它不需要语句CREATE OBJECT来实例化,而是用persistent service的方法来初始化的,在创建persistent class时同时会创建一个相应的类,称为class actoragent,用来管理persistent class的对象。Persistent class必须有类似unique keykey attributespersistent service用来保证不同persistent class objects内容的唯一性。

对于每一个persistent class,在class builder创建时cl_persistent都会创建另外两个类ca_persistentcg_persistentCa_class成为class actor,用来管理cl_persistent的对象,并在这里进行数据库访问。这个类继承于abstract super class cb_persistentCa_persistent可以扩展cb_persistent并重新定义它的方法。Ca_persistentcl_persistentfriend,并具有属性CREATE PRIVATE,该类在第一次被访问时差生唯一的实例。Ca_persistent有一个静态reference属性AGENT,当使用这个属性时,ca_persistent的静态构造方法便会创建这个类的一个实例并将其赋给AGENT。这个实例是persistent service的一部分用来管理cl_persistent的对象。一个程序中只能产生一个ca_persistent的实例。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值