SPAN {
font-family: "Courier New";
font-size: 10pt;
color: #000000;
background: #FFFFFF;
}
.L1S31 {
font-style: italic;
color: #808080;
}
.L1S32 {
color: #3399FF;
}
.L1S33 {
color: #4DA619;
}
.L1S52 {
color: #0000FF;
}
REPORTdemo_abap_objects.
*---------------------------------------------------------------------*
*GlobalSelectionScreen
*---------------------------------------------------------------------*
SELECTION-SCREENBEGINOFSCREEN100ASWINDOWTITLEtext-100.
PARAMETERS:button1RADIOBUTTONGROUPgrp,
button2RADIOBUTTONGROUPgrp,
button3RADIOBUTTONGROUPgrp,
button4RADIOBUTTONGROUPgrp.
SELECTION-SCREENENDOFSCREEN100.
*---------------------------------------------------------------------*
*INTERFACEstatus
*---------------------------------------------------------------------*
*Interfacedefinition*
*---------------------------------------------------------------------*
INTERFACEstatus.
METHODSwrite.
ENDINTERFACE.
*---------------------------------------------------------------------*
*CLASSvesselDEFINITION
*---------------------------------------------------------------------*
*Superclassdefinition*
*---------------------------------------------------------------------*
CLASSvesselDEFINITION.
PUBLICSECTION.
METHODS:constructor,
driveIMPORTINGspeed_upTYPEi,
get_idRETURNINGvalue(id)TYPEi.
PROTECTEDSECTION.
DATA:speedTYPEi,
max_speedTYPEiVALUE100.
PRIVATESECTION.
CLASS-DATAobject_countTYPEi.
DATAidTYPEi.
ENDCLASS.
*---------------------------------------------------------------------*
*CLASSvesselIMPLEMENTATION
*---------------------------------------------------------------------*
*Superclassimplementation*
*---------------------------------------------------------------------*
CLASSvesselIMPLEMENTATION.
METHODconstructor.
object_count=object_count+1.
id=object_count.
ENDMETHOD.
METHODdrive.
speed=speed+speed_up.
IFspeed>max_speed.
speed=max_speed.
ENDIF.
ENDMETHOD.
METHODget_id.
id=me->id.
ENDMETHOD.
ENDCLASS.
*---------------------------------------------------------------------*
*CLASSshipDEFINITION
*---------------------------------------------------------------------*
*Subclassdefinition*
*---------------------------------------------------------------------*
CLASSshipDEFINITIONINHERITINGFROMvessel.
PUBLICSECTION.
INTERFACESstatus.
DATAnameTYPEstringREAD-ONLY.
METHODS:constructorIMPORTINGnameTYPEstring,
driveREDEFINITION.
EVENTSemergency_call.
ENDCLASS.
*---------------------------------------------------------------------*
*CLASSshipIMPLEMENTATION
*---------------------------------------------------------------------*
*Subclassimplementation*
*---------------------------------------------------------------------*
CLASSshipIMPLEMENTATION.
METHODconstructor.
CALLMETHODsuper->constructor.
max_speed=30.
me->name=name.
ENDMETHOD.
METHODstatus~write.
DATAid.
id=me->get_id().
WRITE:/name,'isvessel',id,
'andhasspeed',speed.
ENDMETHOD.
METHODdrive.
speed=speed+speed_up.
IFspeed>max_speed.
max_speed=0.
speed=0.
RAISEEVENTemergency_call.
ENDIF.
ENDMETHOD.
ENDCLASS.
*---------------------------------------------------------------------*
*CLASScoast_guardDEFINITION
*---------------------------------------------------------------------*
*Eventhandlerdefinition*
*---------------------------------------------------------------------*
CLASScoast_guardDEFINITION.
PUBLICSECTION.
INTERFACESstatus.
METHODSreceiveFOREVENTemergency_callOFshipIMPORTINGsender.
ALIASESwriteFORstatus~write.
PRIVATESECTION.
DATAcallerTYPEstring.
ENDCLASS.
*---------------------------------------------------------------------*
*CLASScoast_guardIMPLEMENTATION
*---------------------------------------------------------------------*
*Eventhandlerimplementation*
*---------------------------------------------------------------------*
CLASScoast_guardIMPLEMENTATION.
METHODstatus~write.
IFcallerISINITIAL.
WRITE:/'Coastguardreceivednocall'.
ELSE.
WRITE:/'Coastguardreceivedacallfrom',caller.
ENDIF.
ENDMETHOD.
METHODreceive.
caller=sender->name.
CALLMETHODwrite.
ENDMETHOD.
ENDCLASS.
*---------------------------------------------------------------------*
*CLASSmainDEFINITION
*---------------------------------------------------------------------*
*Mainclassdefinition*
*---------------------------------------------------------------------*
CLASSmainDEFINITION.
PUBLICSECTION.
CLASS-METHODS:start,
objects,
inheritance,
interfaces,
events.
ENDCLASS.
*---------------------------------------------------------------------*
*CLASSmainIMPLEMENTATION
*---------------------------------------------------------------------*
*Mainclassimplementation*
*---------------------------------------------------------------------*
CLASSmainIMPLEMENTATION.
METHODstart.
CALLSELECTION-SCREEN100STARTINGAT103
ENDINGAT427.
IFsy-subrcNE0.
EXIT.
ELSEIFbutton1='X'.
CALLMETHODobjects.
ELSEIFbutton2='X'.
CALLMETHODinheritance.
ELSEIFbutton3='X'.
CALLMETHODinterfaces.
ELSEIFbutton4='X'.
CALLMETHODevents.
ENDIF.
ENDMETHOD.
METHODobjects.
DATA:vessel1TYPEREFTOvessel,
vessel2TYPEREFTOvessel.
DATA:vessel_idTYPEi.
CREATEOBJECT:vessel1TYPEvessel,
vessel2TYPEvessel.
CALLMETHOD:vessel1->drive(50),
vessel2->drive(80).
vessel_id=vessel1->get_id().
WRITE:/'VesselIDis',vessel_id.
vessel_id=vessel2->get_id().
WRITE:/'VesselIDis',vessel_id.
ENDMETHOD.
METHODinheritance.
DATA:vesselTYPEREFTOvessel,
shipTYPEREFTOship.
CREATEOBJECTshipTYPEshipEXPORTINGname='Titanic'.
CALLMETHODship->drive(20).
MOVEshipTOvessel.
CALLMETHODvessel->drive(10).
CALLMETHODship->status~write.
ENDMETHOD.
METHODinterfaces.
DATA:status_tabTYPETABLEOFREFTOstatus,
statusTYPEREFTOstatus.
DATA:shipTYPEREFTOship,
stationTYPEREFTOcoast_guard.
CREATEOBJECT:shipEXPORTINGname='Titanic'.
APPENDshipTOstatus_tab.
CREATEOBJECTstation.
APPENDstationTOstatus_tab.
LOOPATstatus_tabINTOstatus.
CALLMETHODstatus->write.
ENDLOOP.
ENDMETHOD.
METHODevents.
DATA:shipTYPEREFTOship,
stationTYPEREFTOcoast_guard.
CREATEOBJECT:shipEXPORTINGname='Titanic',
station.
SETHANDLERstation->receiveFORship.
DO5TIMES.
CALLMETHODship->drive(10).
ENDDO.
ENDMETHOD.
ENDCLASS.
*---------------------------------------------------------------------*
*SystemeventSTART-OF-SELECTION
*---------------------------------------------------------------------*
*TriggeredbytheABAPruntimeenvironmentautomatically*
*---------------------------------------------------------------------*
START-OF-SELECTION.
CALLMETHODmain=>start.
*---------------------------------------------------------------------*
分享到:
相关推荐
4. **ABAP Objects**:ABAP自20世纪90年代末引入了面向对象的概念,包括类、接口、继承、多态性等。 5. **ABAP工作区**:比如内表(Internal Tables)是ABAP中处理数据的重要工具,它们可以用于存储和操作表格形式...
最后,ABAP Objects是ABAP的一个面向对象编程扩展,引入了类、继承、多态等OOP概念,使得ABAP更符合现代软件开发的需求。 “ABAP开发基础教程”的学习者可以从ABAP trainning.xls这个文件中获取实践练习,这通常...
- 希望深入理解SAP Control Framework架构及其与ABAP Objects集成方法的IT专业人士。 **课程目标:** - 掌握SAP Control Framework的基本概念和架构。 - 学会创建自定义控件和容器控件,并了解它们在屏幕中的使用...
##### 2.1 持久对象 (Persistent Objects) 持久对象是ABAP面向对象编程中的一种关键机制,用于简化数据访问逻辑。通过使用持久对象,开发者可以更容易地管理数据库中的数据,并确保数据的一致性和完整性。在SAP ...
ABAP Objects是SAP开发的一种面向对象编程技术,它是ABAP(Advanced Business Application Programming)语言的一个重要扩展。在ABAP Objects中,你可以利用面向对象编程的特性,如封装、继承、多态等,来构建更加...
SAP ABAP 面向对象编程 详细讲解 英文 PDF 版本
7. **S_ABAP_OBJECTS_EVENTS.txt**:ABAP对象事件处理,这是ABAP面向对象编程的一部分,涉及对象的生命周期事件(如CREATE, MODIFY, DELETE)以及自定义事件的触发和处理。 8. **S_ITAB_EXAMPLE.txt**:内部表...
7. **S_ABAP_OBJECTS_EVENTS.txt**:ABAP对象事件处理涉及到面向对象编程,学习如何定义对象、触发和响应事件,增强程序的模块化设计。 8. **S_ITAB_EXAMPLE.txt**:内部表是ABAP中用于存储数据的数据结构,类似于...
- **概念**: ABAP Objects是ABAP语言的一个扩展,引入了面向对象编程的概念。这使得开发者能够更加灵活地组织代码结构,提高代码复用性和可维护性。 - **核心特性**: - 类(Class)的定义与使用 - 对象(Object)的...
SAP ABAP Workflow programming with ABAP OO objects
sap press doc 解压密码:abap_developer
sap press doc 解压密码:abap_developer
sap press doc 解压密码:abap_developer
sap press doc 解压密码:abap_developer
面向对象的 ABAP 编程, 非常好, 不过需要ABAP 基础. 格式是djvu格式, 如果打不开,请google .djvu
《SAP内部经典资料系列-BC401 (ABAP Objects)》是一份深度探讨SAP ABAP对象编程的重要资源,对于希望深入了解SAP开发技术的IT从业者来说,无疑是不可多得的学习材料。ABAP Objects是SAP的一种面向对象的编程语言,它...
ABAP Objects是SAP ABAP编程语言的一个重要组成部分,它引入了面向对象的编程概念,使得ABAP在传统的过程化编程基础上迈出了革命性的一步。ABAP Objects的出现旨在提高代码的可重用性、可维护性和模块化,从而帮助...
SAP BC404 ABAP Objects pdf
### ABAP Objects Reference知识点概述 #### 一、引言与概览 《ABAP Objects Reference》是一本详尽介绍ABAP语言元素的书籍,由Horst Keller和Joachim Jacobitz编写,旨在为读者提供全面深入的理解ABAP Objects...