0% found this document useful (0 votes)
241 views

03 Introduction To ABAP Objects Exercise Solutions

This document contains 4 sections that provide examples of using ABAP objects: 1. It demonstrates that protected and private components of a class cannot be accessed from outside the class. 2. It shows how to define a method in a class that calculates tax, and call that method to modify salary and tax amounts. 3. It shows how static and instance methods and data differ - a static method can access static data but not instance data. 4. It creates an object and shows that the constructor method is called during object creation.

Uploaded by

S Vishnu Vardhan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
241 views

03 Introduction To ABAP Objects Exercise Solutions

This document contains 4 sections that provide examples of using ABAP objects: 1. It demonstrates that protected and private components of a class cannot be accessed from outside the class. 2. It shows how to define a method in a class that calculates tax, and call that method to modify salary and tax amounts. 3. It shows how static and instance methods and data differ - a static method can access static data but not instance data. 4. It creates an object and shows that the constructor method is called during object creation.

Uploaded by

S Vishnu Vardhan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 6

EXERCISE: ABAP OBJECTS Basic:

1. REPORT YOOPBASIC_XX_01 LINE-SIZE 120. CLASS c1 DEFINITION. PUBLIC SECTION. DATA: commondata(30) type c value 'Accessible to all'. PROTECTED SECTION. DATA: protectdata(40) type c value 'Protected data'. PRIVATE SECTION. DATA : privatedata(30) type c value 'Private data'. ENDCLASS. CLASS c1 IMPLEMENTATION. ENDCLASS. START-OF-SELECTION. DATA: obj1 type ref to c1. CREATE OBJECT: obj1. write:/5 obj1->protectdata, obj1->privatedata. On compilation of this program, an error will be generated which will prove that protected and private components of a class cannot be accessed by external users. 2. REPORT YOOPBASIC_XX_02. DATA: w_tax type p decimals 2, w_salary type p decimals 2. CONSTANTS: c_a01(3) TYPE c VALUE 'A01'. CLASS ctax DEFINITION. PUBLIC SECTION. METHODS: tax_calc IMPORTING grade TYPE C EXPORTING itax TYPE P CHANGING salary TYPE P. ENDCLASS. CLASS ctax IMPLEMENTATION. METHOD: tax_calc. CASE grade. WHEN 'A01'. itax = salary * '0.2'. WHEN 'A02'. itax = salary * '0.1'. WHEN OTHERS. itax = salary * '0.15'. ENDCASE. salary = salary - itax. ENDMETHOD. ENDCLASS.
March 2005

Page 1

START-OF-SELECTION. DATA: oref1 TYPE REF TO ctax. CREATE OBJECT: oref1. w_salary = 30000. w_tax = 0 . write:/5 'Before method call, salary and tax are (001), w_salary, w_tax . CALL METHOD oref1->tax_calc EXPORTING grade = c_a01 IMPORTING itax = w_tax CHANGING salary = w_salary. write:/5 'After method call, salary and tax are (002), w_salary, w_tax. 3. REPORT YOOPBASIC_XX_03. CLASS c1 DEFINITION. PUBLIC SECTION. CLASS-DATA: stnum TYPE I VALUE 5. DATA: instnum TYPE I VALUE 6. CLASS-METHODS: stmeth. METHODS: instmeth. ENDCLASS. CLASS c1 IMPLEMENTATION. METHOD: stmeth. WRITE:/5 stnum. WRITE:/5 instnum. ENDMETHOD. METHOD instmeth. WRITE:/5 stnum. WRITE:/5 instnum. ENDMETHOD. ENDCLASS. START-OF-SELECTION. DATA: oref1 TYPE REF TO c1. CALL METHOD c1=>stmeth. CREATE OBJECT oref1. CALL METHOD oref1->instmeth. On compilation of this program, an error will be generated which will demonstrate that static method STMETH cannot work with instance attribute, INSTNUM. 4. REPORT YOOPBASIC_XX_04. CLASS c1 DEFINITION. PUBLIC SECTION. METHODS: constructor.
March 2005

Page 2

ENDCLASS. CLASS c1 IMPLEMENTATION. METHOD constructor. WRITE:/5 'I am constructor'. skip 2. ENDMETHOD. ENDCLASS. *************** main program ************** START-OF-SELECTION. DATA: obj1 TYPE REF TO c1. CREATE OBJECT: obj1.

Page 3

March 2005

Advanced:
1. REPORT YOOPADVANCE_XX_01. CLASS c1 DEFINITION. PUBLIC SECTION. METHODS: meth1. DATA: num TYPE I VALUE 6. PROTECTED SECTION. DATA: num2 type i value 7. METHODS meth2. ENDCLASS. CLASS c1 IMPLEMENTATION. METHOD: meth1. WRITE:/5 num. ENDMETHOD. METHOD: meth2. WRITE:/5 ' I am meth2 '. ENDMETHOD. ENDCLASS. CLASS c2 DEFINITION INHERITING FROM c1. PUBLIC SECTION. METHODS: m1. ENDCLASS. CLASS c2 IMPLEMENTATION. METHOD m1. CALL METHOD: meth1, meth2. write:/5 num2. ENDMETHOD. ENDCLASS. START-OF-SELECTION. DATA: oref TYPE REF TO c2. CREATE OBJECT oref. CALL METHOD: oref ->m1. 2. REPORT YOOPADVANCE_XX_02 CLASS c1 DEFINITION. PUBLIC SECTION. * Creating event: e1 EVENTS: e1. * Triggering method : t1 METHODS: t1. ENDCLASS. CLASS c2 DEFINITION. PUBLIC SECTION. * Creating an event handling method. METHODS: m1 FOR EVENT e1 OF c1.
Page 4 March 2005

ENDCLASS. CLASS c1 IMPLEMENTATION. * Method: t1 will raise the event METHOD: t1. write:/5 'I am t1, going to raise event e1'. RAISE EVENT e1. ENDMETHOD. ENDCLASS. CLASS c2 implementation. * Method: m1 will be called when the event is raised METHOD: m1. write:/5 ' I am the event handler method in c2'. ENDMETHOD. ENDCLASS. START-OF-SELECTION. Data: oref1 type ref to c1, oref2 type ref to c2. Create object: oref1, oref2. * Registering the event handler method SET HANDLER oref2->M1 FOR oref1. * Calling the event which will raise the event. CALL METHOD oref1->T1. 3. REPORT YOOPADVANCE_XX_03. CLASS c1 DEFINITION DEFERRED. CLASS c2 DEFINITION CREATE PRIVATE FRIENDS c1. PROTECTED SECTION. DATA: num TYPE I VALUE 5. METHODS: m2. ENDCLASS. CLASS C2 IMPLEMENTATION. METHOD m2. WRITE:/5 'I am method m2 in c2'. ENDMETHOD. ENDCLASS. CLASS c1 DEFINITION. PUBLIC SECTION. METHODS: m1. ENDCLASS. CLASS c1 IMPLEMENTATION. METHOD m1. DATA: oref2 TYPE REF TO c2. CREATE OBJECT oref2. WRITE:/5 oref2->num. CALL METHOD oref2->m2. ENDMETHOD. ENDCLASS.
March 2005

Page 5

START-OF-SELECTION. DATA: OREF1 TYPE REF TO C1. CREATE OBJECT OREF1. CALL METHOD OREF1->M1.

Page 6

March 2005

You might also like