ABAPCLASS_DEFERRED - CLASS DEFERRED

General Data in Customer Master   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

CLASS - DEFERRED

Kurzreferenz



Syntax

CLASS class DEFINITION DEFERRED [PUBLIC].

Wirkung

Diese Variante der Anweisung CLASS dient dazu, die Klasse class unabhängig vomOrt der eigentlichen Definition vorläufig im Programm bekannt zu machen. Sie leitet keinen Deklarationsteil ein und darf nicht mit ENDCLASS abgeschlossen werden.

  • Ohne den Zusatz PUBLIC macht die Anweisung eine lokale Klasse vor ihrer eigentlichen Definitionbekannt. Das Programm muss an späterer Stelle einen Deklarationsteil für classenthalten. Ein Zugriff auf einzelne Komponenten ist nicht vor der eigentlichen Definition möglich. Die Anweisung ist notwendig, wenn man sich auf eine lokale Klasse beziehen will, bevor sie definiert wird.

  • Mit dem Zusatz PUBLIC macht sie eine globale Klasse bekannt und verzögert das Laden derKlasse bis zum Ende der aktuellen Programmeinheit. Der Zugriff auf einzelne Komponenten ist erst nachdem Laden der Klasse möglich. Die Anweisung kann verwendet werden, um ungewollte Rekursionen beim Bezug auf globale Klassen zu verhindern.

Hinweis

Auch diese Variante der Anweisung CLASS kann nur in dem unter CLASS beschriebenen Kontext aufgeführt werden.

Beispiel

In diesem Beispiel verwendet die Klasse c1 die Klasse c2 und umgekehrt. Deshalb muss eine der Klassen vor ihrer eigentlichen Definition bekannt gemacht werden.

CLASS c1 DEFINITION DEFERRED.

CLASS c2 DEFINITION.
  PUBLIC SECTION.
    DATA c1ref TYPE REF TO c1.
ENDCLASS.

CLASS c1 DEFINITION.
  PUBLIC SECTION.
    DATA c2ref TYPE REF TO c2.
ENDCLASS.

Ein Beispiel für die Verwendung des Zusatzes DEFERRED PUBLIC wäre eine Typgruppe,in der ein Referenztyp mit Bezug auf eine globale Klasse deklariert wird, welche selbst Komponentenmit Bezug auf diesen Referenztyp enthält. In diesem Fall kann nicht die gesamte Klasse vor derTypgruppe geladen werden, da die Typen dann noch nicht bekannt sind. Nach der Anweisung CLASS DEFINITION... DEFERRED PUBLIC kann der Klassenname aber hinter REF TO angegeben werden, ohne dass die Klasse vorher schon geladen wird.


RFUMSV00 - Advance Return for Tax on Sales/Purchases   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 2808 Date: 20120526 Time: 192207     triton ( 171 ms )