Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ABAP OO example

Former Member
0 Likes
3,657

Any ABAP OO documents available having example code ?

1 ACCEPTED SOLUTION
6 REPLIES 6
Read only

Former Member
0 Likes
1,379

Suggest you follow this path within SAP:

Transaction SE80

Menu: Environment->Examples->ABAP Examples

Tree branch ABAP Objects

Jay

Read only

former_member69765
Contributor
0 Likes
1,379

[www.abaplearning.com|www.abaplearning.com]

Read only

Former Member
0 Likes
1,379

Hey!!

Check out this link

http://www.sap-press.de/katalog/buecher/htmlleseproben/gp/htmlprobID-28?GalileoSession=22448306A3l7U...

Check out this sample code, they are actually two programs which are inter related. copy paste them and run in debugging mode.


REPORT  z_CLASS_CASTING.

TYPE-POOLS icon.
INCLUDE z_class.

DATA: r_plane TYPE REF TO lcl_airplane,
      r_cargo TYPE REF TO lcl_cargo_plane,
      r_passenger TYPE REF TO lcl_passenger_plane,
      plane_list TYPE TABLE OF REF TO lcl_airplane.

START-OF-SELECTION.

lcl_airplane=>display_n_o_airplanes( ).

CREATE OBJECT r_passenger EXPORTING
                            im_name      = 'LH BERLIN'
                            im_planetype = '747-400'
                            im_seats     = 345.

APPEND r_passenger TO plane_list.

CREATE OBJECT r_cargo EXPORTING
                        im_name      = 'US Hercules'
                        im_planetype = '747-500'
                        im_cargo     = 533.

APPEND r_cargo TO plane_list.

LOOP AT plane_list INTO r_plane.
  r_plane->display_attributes( ).
ENDLOOP.
lcl_airplane=>display_n_o_airplanes( ).
* NEXT PROGRAM

*&---------------------------------------------------------------------*
*&  Include          z_CLASS                                *
*&---------------------------------------------------------------------*
CLASS lcl_airplane DEFINITION.
  PUBLIC SECTION.
    CONSTANTS: pos_1 TYPE i VALUE 30.
    METHODS:
      constructor IMPORTING
                    im_name TYPE string
                    im_planetype TYPE saplane-planetype,
                  display_attributes.
    CLASS-METHODS: display_n_o_airplanes.
  PRIVATE SECTION.
    METHODS: get_technical_attributes
               IMPORTING im_type    TYPE saplane-planetype
               EXPORTING ex_weight  TYPE s_plan_wei
                         ex_tankcap TYPE s_capacity.

    DATA: name TYPE string,
          planetype TYPE saplane-planetype.

    CLASS-DATA: n_o_airplanes TYPE i.
ENDCLASS.                    "lcl_airplane DEFINITION

*---------------------------------------------------------------------*
*       CLASS lcl_airplane IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_airplane IMPLEMENTATION.

  METHOD constructor.
    name      = im_name.
    planetype = im_planetype.
    n_o_airplanes = n_o_airplanes + 1.
  ENDMETHOD.                    "constructor

  METHOD display_attributes.
    DATA: weight TYPE saplane-weight,
             cap TYPE saplane-tankcap.
    WRITE: / icon_ws_plane AS ICON,
           / 'Name of airplane', AT pos_1 name,
           / 'Airplane type:', AT pos_1 planetype.
    get_technical_attributes( EXPORTING im_type    = planetype
                              IMPORTING ex_weight  = weight
                                        ex_tankcap = cap ).
    WRITE: / 'Weight:', weight,
             'Tank capacity:', cap.

  ENDMETHOD.                    "display_attributes

  METHOD display_n_o_airplanes.
    WRITE: /,/ 'Number of airplanes:',AT pos_1 n_o_airplanes
                LEFT-JUSTIFIED, /.
  ENDMETHOD.                    "display_n_o_airplanes

  METHOD get_technical_attributes.
    SELECT SINGLE weight
                  tankcap
             FROM saplane
             INTO (ex_weight, ex_tankcap)
            WHERE planetype = im_type.
    IF sy-subrc <> 0.
      ex_weight = 100000.
      ex_tankcap = 10000.
    ENDIF.
  ENDMETHOD.                    "get_technical_attributes

ENDCLASS.                    "lcl_airplane IMPLEMENTATION

*---------------------------------------------------------------------*
*       CLASS lcl_cargo_plane DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_cargo_plane DEFINITION INHERITING FROM lcl_airplane.

  PUBLIC SECTION.

    METHODS: constructor IMPORTING im_name TYPE string
                                   im_planetype TYPE saplane-planetype
                                   im_cargo TYPE scplane-cargomax.

    METHODS: display_attributes REDEFINITION.

    METHODS: get_cargo RETURNING value(re_cargo) TYPE scplane-cargomax.

  PRIVATE SECTION.
    DATA: max_cargo TYPE scplane-cargomax.

ENDCLASS.                    "lcl_cargo_plane DEFINITION

*---------------------------------------------------------------------*
*       CLASS lcl_cargo_plane IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_cargo_plane IMPLEMENTATION.

  METHOD constructor.
    CALL METHOD super->constructor( im_name = im_name
      im_planetype = im_planetype ).
    max_cargo = im_cargo.
  ENDMETHOD.                    "constructor

  METHOD display_attributes.
    super->display_attributes( ).
    WRITE: / 'Max Cargo = ', max_cargo.
    ULINE.
  ENDMETHOD.                    "display_attributes

  METHOD get_cargo.
    re_cargo = max_cargo.
  ENDMETHOD.                    "get_cargo

ENDCLASS.                    "lcl_cargo_plane IMPLEMENTATION

*---------------------------------------------------------------------*
*       CLASS lcl_passenger_plane DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_passenger_plane DEFINITION INHERITING FROM lcl_airplane.

  PUBLIC SECTION.

    METHODS: constructor IMPORTING im_name      TYPE string
                                   im_planetype TYPE saplane-planetype
                                   im_seats     TYPE sflight-seatsmax.

    METHODS: display_attributes REDEFINITION.

  PRIVATE SECTION.
    DATA: max_seats TYPE sflight-seatsmax.



ENDCLASS.                    "lcl_passenger_plane DEFINITION

*---------------------------------------------------------------------*
*       CLASS lcl_passenger_plane IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_passenger_plane IMPLEMENTATION.
  METHOD constructor.
    CALL METHOD super->constructor( EXPORTING im_name = im_name
                                         im_planetype = im_planetype ).
    max_seats = im_seats.
  ENDMETHOD.                    "constructor

  METHOD display_attributes.
    super->display_attributes( ).
    WRITE: / 'Max Seats = ', max_seats.
    ULINE.
  ENDMETHOD.                    "display_attributes

ENDCLASS.                    "lcl_passenger_plane IMPLEMENTATION

Regards

Abhijeet Kulshreshtha

Edited by: Abhijeet Kulshreshtha on Jul 11, 2008 7:06 AM

Edited by: Abhijeet Kulshreshtha on Jul 11, 2008 7:24 AM

Read only

Former Member
0 Likes
1,379

Hi,

Please check this link

Tutorials on Object Oriented Programming

http://www.saptechnical.com/Tutorials/OOPS/MainPage.htm

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a41....

/thread/742611 [original link is broken]

Best regards,

raam