`
zjut_xiongfeng
  • 浏览: 277960 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ABAP_OBJECTS

UP 
阅读更多

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.

*---------------------------------------------------------------------*

分享到:
评论

相关推荐

    ABAP_DOCU_HTML.rar_ABAP_DOCU_HTML

    4. **ABAP Objects**:ABAP自20世纪90年代末引入了面向对象的概念,包括类、接口、继承、多态性等。 5. **ABAP工作区**:比如内表(Internal Tables)是ABAP中处理数据的重要工具,它们可以用于存储和操作表格形式...

    ABAP-trainning.rar_abap_sap abap

    最后,ABAP Objects是ABAP的一个面向对象编程扩展,引入了类、继承、多态等OOP概念,使得ABAP更符合现代软件开发的需求。 “ABAP开发基础教程”的学习者可以从ABAP trainning.xls这个文件中获取实践练习,这通常...

    sap BC412_ABAP_Dialog_Programming_Using_Enjoy_SAP_Control

    - 希望深入理解SAP Control Framework架构及其与ABAP Objects集成方法的IT专业人士。 **课程目标:** - 掌握SAP Control Framework的基本概念和架构。 - 学会创建自定义控件和容器控件,并了解它们在屏幕中的使用...

    COMP277_ABAP_NW7.0

    ##### 2.1 持久对象 (Persistent Objects) 持久对象是ABAP面向对象编程中的一种关键机制,用于简化数据访问逻辑。通过使用持久对象,开发者可以更容易地管理数据库中的数据,并确保数据的一致性和完整性。在SAP ...

    ABAPObjects

    ABAP Objects是SAP开发的一种面向对象编程技术,它是ABAP(Advanced Business Application Programming)语言的一个重要扩展。在ABAP Objects中,你可以利用面向对象编程的特性,如封装、继承、多态等,来构建更加...

    Object-Oriented Programming With Abap Objects_Original

    SAP ABAP 面向对象编程 详细讲解 英文 PDF 版本

    ABAP源代码-初学者参考 abap source codes.rar

    7. **S_ABAP_OBJECTS_EVENTS.txt**:ABAP对象事件处理,这是ABAP面向对象编程的一部分,涉及对象的生命周期事件(如CREATE, MODIFY, DELETE)以及自定义事件的触发和处理。 8. **S_ITAB_EXAMPLE.txt**:内部表...

    ABAP源代码参考(适合初学者)

    7. **S_ABAP_OBJECTS_EVENTS.txt**:ABAP对象事件处理涉及到面向对象编程,学习如何定义对象、触发和响应事件,增强程序的模块化设计。 8. **S_ITAB_EXAMPLE.txt**:内部表是ABAP中用于存储数据的数据结构,类似于...

    BC401_APAP_Objects.pdf

    - **概念**: ABAP Objects是ABAP语言的一个扩展,引入了面向对象编程的概念。这使得开发者能够更加灵活地组织代码结构,提高代码复用性和可维护性。 - **核心特性**: - 类(Class)的定义与使用 - 对象(Object)的...

    Workflow programming with ABAP OO objects

    SAP ABAP Workflow programming with ABAP OO objects

    Design Patterns in ABAP Objects.zip

    sap press doc 解压密码:abap_developer

    Test-Driven Development with ABAP Objects.zip

    sap press doc 解压密码:abap_developer

    Object-Oriented Programming with ABAP Objects.zip

    sap press doc 解压密码:abap_developer

    Error Handling with Exception Classes in ABAP Objects.zip

    sap press doc 解压密码:abap_developer

    ABAP Objects -- ABAP Programming in SAP Neteaver

    面向对象的 ABAP 编程, 非常好, 不过需要ABAP 基础. 格式是djvu格式, 如果打不开,请google .djvu

    sap内部经典资料系列-bc401(abap objects)

    《SAP内部经典资料系列-BC401 (ABAP Objects)》是一份深度探讨SAP ABAP对象编程的重要资源,对于希望深入了解SAP开发技术的IT从业者来说,无疑是不可多得的学习材料。ABAP Objects是SAP的一种面向对象的编程语言,它...

    ABAP Objects

    ABAP Objects是SAP ABAP编程语言的一个重要组成部分,它引入了面向对象的编程概念,使得ABAP在传统的过程化编程基础上迈出了革命性的一步。ABAP Objects的出现旨在提高代码的可重用性、可维护性和模块化,从而帮助...

    SAP BC404 ABAP Objects

    SAP BC404 ABAP Objects pdf

    ABAP Objects Reference.pdf

    ### ABAP Objects Reference知识点概述 #### 一、引言与概览 《ABAP Objects Reference》是一本详尽介绍ABAP语言元素的书籍,由Horst Keller和Joachim Jacobitz编写,旨在为读者提供全面深入的理解ABAP Objects...

Global site tag (gtag.js) - Google Analytics