ABAP Keyword Documentation → ABAP - Reference → Declarative statemnts → Classes and Interfaces
CLASS
Other versions: 7.31 | 7.40 | 7.54
Syntax Forms
Declaration Part of a Class
1. CLASS class DEFINITION
[class_options]. [PUBLIC SECTION.
[components]]
[PROTECTED SECTION.
[components]]
[PRIVATE SECTION.
[components]]
ENDCLASS.
Implementation Part of a Class
2. CLASS class IMPLEMENTATION.
...
METHOD ...
...
ENDMETHOD.
...
ENDCLASS.
Publication of Classes
3. CLASS class DEFINITION DEFERRED [PUBLIC].
Local Friends of Global Classes
4. CLASS class DEFINITION
LOCAL FRIENDS class1 class2 ...
intf1 intf2 ... .
Effect
The statement CLASS
defines a class class
, publishes it, or specifies properties.
-
The complete definition of a class consists of a declaration part and an
implementation part, which are both introduced
by
CLASS
and ended byENDCLASS
. In the declaration part, the properties of the class are specified and its components are declared. In the implementation part, the methods of the class are implemented. -
The variants of
CLASS
withoutENDCLASS
are used for the publication of classes in a program and the declaration of local friends of a global class.
The statements CLASS
and associated statements ENDCLASS
can be specified only in the global context of a program. CLASS
and
ENDCLASS cannot be specified within classes, procedures, and processing blocks implemented internally
as a procedure (event blocks for GET
and AT SELECTION-SCREEN
).
This applies in particular to the variants of CLASS
specified here, which is not closed using ENDCLASS
.
Notes
-
The declaration part of a class, and the variants of
CLASS
not closed usingENDCLASS
are handled like other declaration statements (DATA
,TYPE
, ...). In a processing block without a local context, they are handled like global program declarations and do not end the processing block. - Overall, the implementation part of a class functions like a separate processing block and closes other processing blocks.
-
The obsolete variant
CLASS ... DEFINITION LOAD
was formerly used to load classes explicitly.