Documente Academic
Documente Profesional
Documente Cultură
ZDEMO_CLASS_EX2.
ENDCLASS.
CLASS lcl_employee IMPLEMENTATION.
METHOD constructor.
g_employee-no = im_employee_no.
g_employee-name = im_employee_name.
g_no_of_employees = g_no_of_employees + 1.
ENDMETHOD.
METHOD display_employee.
WRITE:/ 'Employee', g_employee-no, g_employee-name.
ENDMETHOD.
METHOD display_no_of_employees.
WRITE: / 'Number of employees is:', g_no_of_employees.
ENDMETHOD.
ENDCLASS.
DATA: g_employee1 TYPE REF TO lcl_employee,
g_employee2 TYPE REF TO lcl_employee.
START-OF-SELECTION.
CREATE OBJECT g_employee1
EXPORTING im_employee_no = 1
im_employee_name = 'Naveen'.
CREATE OBJECT g_employee2
EXPORTING im_employee_no = 2
im_employee_name = 'Kumar'.
CALL METHOD g_employee1->display_employee.
CALL METHOD g_employee2->display_employee.
* Calling Static method using the class
lcl_employee=>display_no_of_employees( ).
*&---------------------------------------------------------------------*
*& Report ZDEMO_CLASS_EX4
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT
ZDEMO_CLASS_EX4.
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT
ZDEMO_CLASS_EX5.
INTERFACE status.
METHODS write.
ENDINTERFACE.
CLASS counter DEFINITION.
PUBLIC SECTION.
INTERFACES status.
METHODS increment.
PRIVATE SECTION.
DATA count TYPE i.
ENDCLASS.
CLASS counter IMPLEMENTATION.
METHOD status~write.
WRITE: / 'Count in counter is', count.
ENDMETHOD.
METHOD increment.
ADD 1 TO count.
ENDMETHOD.
ENDCLASS.
CLASS bicycle DEFINITION.
PUBLIC SECTION.
INTERFACES status.
METHODS drive.
PRIVATE SECTION.
DATA speed TYPE i.
ENDCLASS.
CLASS bicycle IMPLEMENTATION.
METHOD status~write.
WRITE: / 'Speed of bicycle is', speed.
ENDMETHOD.
METHOD drive.
ADD 10 TO speed.
ENDMETHOD.
ENDCLASS.
DATA: CREF1 type ref to Counter,
CREF2 type ref to bicycle,
IREF type ref to STATUS.
START-OF-SELECTION.
CREATE OBJECT cref1.
CREATE OBJECT CREF2 .
IREF = CREF1.
cref1->increment( ).
cref1->increment( ).
cref1->increment( ).
cref1->increment( ).
IREF->write( ).
IREF = CREF2.
CREF2->Drive( ).
CREF2->Drive( ).
CREF2->Drive( ).
IREF->write( ).
-------------------------------*&---------------------------------------------------------------------*
*& Report ZDEMO_CLASS_EX6
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT
ZDEMO_CLASS_EX6.
ZDEMO_CLASS_EX7.
INTERFACE i_vehicle.
DATA
max_speed TYPE i.
METHODS constructor.
INTERFACES i_vehicle.
PRIVATE SECTION.
ALIASES max FOR i_vehicle~max_speed.
DATA ship_speed TYPE i.
ENDCLASS.
*---------------------------------------------------------------CLASS c_truck DEFINITION.
PUBLIC SECTION.
METHODS constructor.
INTERFACES i_vehicle.
PRIVATE SECTION.
ALIASES max FOR i_vehicle~max_speed.
DATA truck_speed TYPE i.
ENDCLASS.
*---------------------------------------------------------------CLASS status DEFINITION.
PUBLIC SECTION.
CLASS-EVENTS button_clicked EXPORTING VALUE(fcode) LIKE sy-ucomm.
CLASS-METHODS: class_constructor,
user_action.
ENDCLASS.
*---------------------------------------------------------------CLASS c_list DEFINITION.
PUBLIC SECTION.
line-id = id.
line-flag = 'c'.
line-iref = ref_ship.
APPEND line TO list.
WHEN 'CREA_TRUCK'.
id = id + 1.
CREATE OBJECT ref_truck.
line-id = id.
line-flag = 'T'.
line-iref = ref_truck.
APPEND line TO list.
WHEN 'DRIVE'.
CHECK sy-lilli > 0.
READ TABLE list INDEX sy-lilli INTO line.
CALL METHOD line-iref->drive.
WHEN 'STOP'.
LOOP AT list INTO line.
CALL METHOD line-iref->stop.
ENDLOOP.
WHEN 'CANCEL'.
LEAVE PROGRAM.
ENDCASE.
CALL METHOD list_output.
ENDMETHOD.
METHOD list_change.
line-speed = new_speed.
MODIFY TABLE list FROM line.
ENDMETHOD.
METHOD list_output.
sy-lsind = 0.
SET TITLEBAR 'TIT'.
LOOP AT list INTO line.
IF line-flag = 'C'.
WRITE / icon_ws_ship AS icon.
ELSEIF line-flag = 'T'.
WRITE / icon_ws_truck AS icon.
ENDIF.
WRITE: 'Speed = ', line-speed.
ENDLOOP.
ENDMETHOD.
ENDCLASS.
*****************************************************************
* Global data of program
*****************************************************************