Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Declarative statemnts →  Classes and Interfaces 

CLASS

Short Reference

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 by ENDCLASS. 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 without ENDCLASS 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 using ENDCLASS 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.

Continue

CLASS - DEFINITION

CLASS - IMPLEMENTATION

ENDCLASS

CLASS - DEFERRED

CLASS - LOCAL FRIENDS