In this tutorial we will learn about how to declare local class and use it in a report program.
KEY POINTS:
- The first step is to give a class definition.
- Next implement the class and its methods.
- Declare a reference to the class.
- Create an object of the class and use it to call the methods of the class.
EXAMPLE:
REPORT zlocal_class.
*--Class Definition
CLASS l_test DEFINITION.
PUBLIC SECTION.
*--data declaration
DATA: info TYPE string.
*--methods
METHODS:
constructor IMPORTING p_balance TYPE dmbtr,
set_balance IMPORTNG p_set TYPE dmbtr,
EXPORTING p_amount TYPE dmbtr,
display.
PRIVATE SECTION.
DATA : balance TYPE dmbtr.
ENDCLASS. " end of class definition
*--Class Implementation
CLASS l_test IMPLEMENTATION.
METHOD constructor.
WRITE: / 'inside constructor'.
balance = p_balance.
WRITE: / 'value' , balance.
ENDMETHOD.
METHOD set_balance.
balance = p_set.
ENDMETHOD.
METHOD display.
WRITE : / ' set the balance'.
WRITE : balance.
ENDMETHOD.
ENDCLASS.
*--Report
*-- Declare the reference.
DATA: test TYPE REF TO l_test.
*declare a parameter on selection screen.
PARAMETERS: p_val TYPE dmbtr.
START-OF-SELECTION.
*--create object
CREATE OBJECT test
EXPORTING
p_balance = 40. <-- This will be passed to the constructor.
*-- call method set_balance.
CALL METHOD test->set_balance <-- call the method to set balance.
EXPORTING
p_set = p_val.
*-- call method display.
CALL METHOD test->display. <-- call method display.
----------------------------------------------------------------------------------------------------------
INPUT :
P_VAL = 500.
OUTPUT:
inside constructor
value 40
set the balance 500
-----------------------------------------------------------------------------------------------------------
Notes :
- The method constructor is called when the object is created using CREATE OBJECT statement.
- The method set_balance s used to set the value or assign the value of parameter to the class attribute balance.
- The attribute 'balance' is private and hence can only be accessed through class methods.
- The method display will print the value of balance attribute.