This article covers the basic introduction of ABAP OOPS concepts like definition of class, object, attributes, method and their visibility.
Introduction to Class and Object - ABAP OOPS
Class: A
class defines the structure (attributes) and behavior (methods) of objects
Types of classes in ABAP:
Global Class: Classes created in SE24 transaction are known as Global Class. The Class created in SE24 can be accessed by all ABAP programs.
Local Class: Class created in SE38 as an ABAP program or in include is known as Local class. These are limited to the program in which it is defined or created. We cannot create objects for local class in other programs.
Object: Object is an instance of class.
Components of the Class:
Attributes: Variables and Constants declared
within a class.
Instance:
Instance attributes are specific to the object state. They can have different
values for each object instance. It is declared using DATA statement.
Static: Static
attributes are common to all the instances of a class. It can be accessed directly using Class name without creating the object reference. Static
attributes are declared using CLASS-DATA.
Constant:
Constants contain one value across all the objects. A constant cannot be
changed.
Methods: Methods are the coding blocks which provides functionality like
function modules.
·
Methods are defined in DEFINITION
part and logic is implemented in IMPLEMENTATION part of a class.
·
Methods can access all the
attributes of a class.
·
A method can be called using
CALL METHOD statement.
·
Static methods are defined
using statement CLASS-METHOD.
·
A Static method can be called
using the class name without creating an instance of class.
· If two variables are declared with same name one at class level and another in method then the class level variable can be accessed in method using ME keyword.
· A Static method can access only static attributes of a class whereas an instance method can access both the instance and static attributes of a class.
Visibility:
Attributes and Methods declared in
Public Section: can be accessed by that class and other class and subclass of the
program
Protected Section: can be accessed by that class and sub class or
derived class only
Private Section: can be accessed by that class and not by any other
class or subclass.
A Simple Example:
REPORT zzap_test. CLASS lcl_class1 DEFINITION. PUBLIC SECTION. DATA: text1 TYPE char25 VALUE 'Public Data'. METHODS meth1. CLASS-DATA: text_st TYPE char25 VALUE 'Static Data'. CLASS-METHODS: meth2. PROTECTED SECTION. DATA: text2 TYPE char25 VALUE 'Protected Data'. PRIVATE SECTION. DATA: text3 TYPE char25 VALUE 'Private Data'. ENDCLASS. CLASS lcl_class1 IMPLEMENTATION. METHOD meth1. DATA: text1 TYPE char25 VALUE 'METHOD Data' . WRITE: / 'Public Method:', / text1, / me->text1, / text2, / text3. SKIP. ENDMETHOD. METHOD meth2. WRITE: / 'This is Static Method'. ENDMETHOD. ENDCLASS. START-OF-SELECTION. * DATA: lo_obj1 TYPE REF TO lcl_class1. * CREATE OBJECT: lo_obj1. DATA(lo_obj1) = NEW lcl_class1( ). " New Syntax CALL METHOD: lo_obj1->meth1. WRITE: / lo_obj1->text1. CALL METHOD lcl_class1=>meth2. " Static Method Call.
Output :