Scenario: This Post describes changing the Value of the Private attribute of the class Outside of the class by Using Reference Technique.
_________________________________________________________________________________
Step1. Create a Report in SE38 and execute it.
REPORT ztest_private_attr_val_change.
*----------------------------------------------------------------------*
* CLASS lcl_private_attr_change_tech DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_private_attr_change_tech DEFINITION.
PUBLIC SECTION.
METHODS : get_private_attribute_value,
get_refrence_of_priv_attr EXPORTING e_fp_salary TYPE REF TO data.
PRIVATE SECTION.
DATA : lv_salary TYPE p DECIMALS 2 VALUE '50000.00'.
ENDCLASS. "lcl_private_attr_change_tech DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_private_attr_change_tech IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_private_attr_change_tech IMPLEMENTATION.
METHOD get_private_attribute_value.
WRITE :/ 'Value of Private Attribute Salary is :', lv_salary.
ENDMETHOD. "get_private_attribute_value
METHOD get_refrence_of_priv_attr.
GET REFERENCE OF lv_salary INTO e_fp_salary.
ENDMETHOD. "get_refrence_of_pri_attr
ENDCLASS. "lcl_private_attr_change_tech IMPLEMENTATION
START-OF-SELECTION.
DATA : lv_oref TYPE REF TO lcl_private_attr_change_tech.
DATA : lv_ref_salary TYPE REF TO data.
FIELD-SYMBOLS : <fs_salary> TYPE any.
CREATE OBJECT lv_oref.
CALL METHOD lv_oref->get_private_attribute_value.
******get the reference of the private attribute of the class*********
CALL METHOD lv_oref->get_refrence_of_priv_attr
IMPORTING
e_fp_salary = lv_ref_salary.
*******Assign the data reference to the Field Symbol*******
ASSIGN lv_ref_salary->* TO <fs_salary>.
*******Change the value of the Private attribute by the reference using the Field Symbol******
<fs_salary> = '80000.00' .
CALL METHOD lv_oref->get_private_attribute_value.
_________________________________________________________________________________
Step2. Execute it and see the Output.
_________________________________________________________________________________
_________________________________________________________________________________
Step1. Create a Report in SE38 and execute it.
REPORT ztest_private_attr_val_change.
*----------------------------------------------------------------------*
* CLASS lcl_private_attr_change_tech DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_private_attr_change_tech DEFINITION.
PUBLIC SECTION.
METHODS : get_private_attribute_value,
get_refrence_of_priv_attr EXPORTING e_fp_salary TYPE REF TO data.
PRIVATE SECTION.
DATA : lv_salary TYPE p DECIMALS 2 VALUE '50000.00'.
ENDCLASS. "lcl_private_attr_change_tech DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_private_attr_change_tech IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_private_attr_change_tech IMPLEMENTATION.
METHOD get_private_attribute_value.
WRITE :/ 'Value of Private Attribute Salary is :', lv_salary.
ENDMETHOD. "get_private_attribute_value
METHOD get_refrence_of_priv_attr.
GET REFERENCE OF lv_salary INTO e_fp_salary.
ENDMETHOD. "get_refrence_of_pri_attr
ENDCLASS. "lcl_private_attr_change_tech IMPLEMENTATION
START-OF-SELECTION.
DATA : lv_oref TYPE REF TO lcl_private_attr_change_tech.
DATA : lv_ref_salary TYPE REF TO data.
FIELD-SYMBOLS : <fs_salary> TYPE any.
CREATE OBJECT lv_oref.
CALL METHOD lv_oref->get_private_attribute_value.
******get the reference of the private attribute of the class*********
CALL METHOD lv_oref->get_refrence_of_priv_attr
IMPORTING
e_fp_salary = lv_ref_salary.
*******Assign the data reference to the Field Symbol*******
ASSIGN lv_ref_salary->* TO <fs_salary>.
*******Change the value of the Private attribute by the reference using the Field Symbol******
<fs_salary> = '80000.00' .
CALL METHOD lv_oref->get_private_attribute_value.
_________________________________________________________________________________
Step2. Execute it and see the Output.
_________________________________________________________________________________
No comments:
Post a Comment