Open nangnangchuai opened 5 years ago
做练习 java ose24定义class interface接口。 不支持多重继承 instance method 实例之后才可用
定义自己的class class写——-推荐这次 form不可以用--------这次项目中
概念 client : server:
继承: 多态: 事件控制:通过事件来形成不同的响应
CALL method
设计观点的来看
uml :面向对象的建模语言
public:外部访问 private :内部使用
se21 定义 实现
在一个类中定义的对象可以参考其他的class
class-data:代表的是静态的。 data:一般变量。
me 代表引用自己
做练习:local class
明天讲:继承强制类型转换,促发一个事件。
10-3练习的位置
CLASS LCL_COMT DEFINITION. "第一步:类的定义 *属性,方法,事件 PUBLIC SECTION. "定义一个公有区 DATA GV_CHAR TYPE c LENGTH 10 VALUE 1. "声明一个变量 METHODS WRITE_CHAR. "声明一个方法
CLASS-DATA ST_CHAR TYPE c LENGTH 10 VALUE 2. "声明一个静态的变量 CLASS-METHODS WRITE_STCHAR.
ENDCLASS.
CLASS LCL_COMT IMPLEMENTATION. "第二步:类的实现 METHOD WRITE_CHAR. WRITE: / GV_CHAR. ENDMETHOD.
METHOD WRITE_STCHAR. WRITE: / ST_CHAR . ENDMETHOD.
ENDCLASS.
DATA LCL_OBJECT TYPE REF TO LCL_COMT. "声明一个对象
START-OF-SELECTION. "表明处理事件的开始
CREATE OBJECT LCL_OBJECT . "创建一个类的实例对象
WRITE : / '对象输出' ,LCL_OBJECT->GV_CHAR. "对象访问类的变量
CALL METHOD LCL_OBJECT->WRITE_CHAR. "对象访问类的方法
CALL METHOD LCL_COMT=>WRITE_STCHAR. "静态对象的方法的访问
WRITE : / '对象输出' , LCL_COMT=>ST_CHAR. "静态变量的使用
• Redefine methods • Create narrowing cast assignments • Create widening cast assignments
不支持重载,不存在同名函数,参数不同
类定义的时候可以定义三种 class 类名称 DEFINITION.
narrow cast:向上强制转型
子类继承父类。
子类重写父类的方法
创建对象的时候,想实现对象实例化的时候,构造方法就有参数
CREATE 对象名 EXPORTING 变量名=数值.
接口不可以实例化,多重继承 interface methods endinterface
向下转型一定要在try catch中
接口使用interface 类中实现接口中的方法使用~
aliases定义别名:
event
CLASS class1 DEFINITION INHERITING FROM object. PUBLIC SECTION. EVENTS: too_fast. ” 声明事件,如果有参数恒为值传递** METHODS: accelerate, show_speed. PROTECTED SECTION. DATA: speed TYPE i. ENDCLASS.
CLASS class1 IMPLEMENTATION. METHOD accelerate. speed = speed + 1. IF speed > 5. RAISE EVENT too_fast. “触发事件 speed = 5. ENDIF. ENDMETHOD. METHOD show_speed. WRITE: / ‘Speed:’, speed. ENDMETHOD. ENDCLASS.
事件需要通过方法捕获事件并进行处理,必须首先为该事件定义 一个事件处理方法,然后在运行时为该事件进行注册. 声明事件处理方法,任何类都可以为其他类中定义的事件进行处理, 当然也可以为自身事件进行处理. CLASS handler DEFINITION. PUBLIC SECTION. METHODS handle_excess FOR EVENT too_fast OF class1.“这段是指这个EVENT的具体如何执行,就像是CL_GUI_ALV_GRID的ONF4事件,需要自己去完成整个事件的运行过程 ENDCLASS.
CLASS handler IMPLEMENTATION. METHOD handle_excess. WRITE: / ‘Speed can not be too fast.’. ENDMETHOD. ENDCLASS.
DATA: o_class1 TYPE REF TO class1, o_handle TYPE REF TO handler.
START-OF-SELECTION. CREATE OBJECT: o_class1, o_handle. *要使事件处理方法能够对事件进行响应, 必须在运行时为相关事件注册该方法. SET HANDLER o_handle->handle_excess FOR ALL INSTANCES.
DO 11 TIMES. CALL METHOD o_class1->accelerate. CALL METHOD o_class1->show_speed. ENDDO.
面向对象的编程