ABAPCLASS-METHODS_CONSTRUCTOR - CLASS-METHODS CONSTRUCTOR

RFUMSV00 - Advance Return for Tax on Sales/Purchases   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.

CLASS-METHODS - class_constructor

Kurzreferenz



Syntax

CLASS-METHODS class_constructor.

Wirkung

Diese Anweisung deklariert den statischen Konstruktor class_constructor der Klasse. Sie ist nur imöffentlichenSichtbarkeitsbereich des Deklarationsteils einer Klasse möglich.

Jede Klasse hat in ihrem öffentlichen Sichtbarkeitsbereich eine vordefinierte Methode namensclass_constructor. Durch die explizite Deklaration kann ihre Funktionalität klassenspezifisch implementiert werden. Ohne explizite Deklaration ist der statische Konstruktor leer.

Der statische Konstruktor wird genau einmal pro Klasse und internem Modus vor dem ersten Zugriff aufdie Klasse automatisch aufgerufen. Ein Zugriff auf die Klasse ist die Erzeugung einer Instanz der Klasse oder die Adressierung einer statischen Komponente über den Klassenkomponenten-Selektor.

Beim ersten Zugriff auf eine Unterklasse wird im Vererbungsbaum nach der nächsthöherenOberklasse gesucht, deren statischer Konstruktor noch nicht aufgerufen wurde. Im Anschluss daran wirdder statische Konstruktor dieser Oberklasse aufgerufen und danach sukzessive der aller folgenden Unterklassenbis zur angesprochenen Unterklasse. Der statische Konstruktor muss vollständig ausgeführt werden, sonst kommt es zu einem Laufzeitfehler.

Wie alle statischen Methoden kann auch der statische Konstruktor nur auf die statischen Komponentenseiner Klasse zugreifen. Weiterhin darf der statische Konstruktor seine eigene Klasse nicht explizit ansprechen.

Hinweise

  • Wie Instanzkonstruktoren sind auch statische Konstruktoren eine Ausnahme von der Regel, dass alle öffentlichen Komponenten entlang eines Pfads im Vererbungsbaum in einem Namensraum liegen.

  • Der Zeitpunkt der Ausführung des statischen Konstruktors liegt nicht definitiv fest. Es wirdallein seine Aufruf vor dem ersten Zugriff auf die Klasse garantiert. Dabei kann es vorkommen, dass statische Methoden ausgeführt werden, bevor der statische Konstruktor beendet wurde.

  • Die Ausführungsreihenfolge von statischen Konstruktoren ist abhängig vom Programmablauf.Statische Konstruktoren müssen so implementiert werden, dass sie in jeder beliebigen Reihenfolge ausgeführt werden können.

  • In statischen Konstruktoren können keine klassenbasierten Ausnahmen mit RAISING deklariertwerden, da für einen Verwender einer Klasse in der Regel nicht feststeht, ob er der erste Verwender ist und ob er vom statischen Konstruktor propagierte Ausnahmen behandeln muss oder nicht.

  • Wenn eine statischeKomponente einer Oberklasse über den Namen einer Unterklasse angesprochen wird, wird dieOberklasse adressiert und deren statischer Konstruktor ausgeführt, aber nicht der statische Konstruktor der Unterklasse.


Beispiel

Der statische Konstruktor dieser Klasse setzt beim ersten Zugriff auf die Klasse das statische Attributaccess_program mit Hilfe des Systemfeldes sy-repid auf den Namen des Programms eines internen Modus, das die Klasse als Erstes verwendet.

CLASS some_class DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS class_constructor.
  PRIVATE SECTION.
    CLASS-DATA access_program TYPE sy-repid.
ENDCLASS.

CLASS some_class IMPLEMENTATION.
  METHOD class_constructor.
    access_program = sy-repid.
  ENDMETHOD.
ENDCLASS.




TXBHW - Original Tax Base Amount in Local Currency   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 4384 Date: 20120526 Time: 192053     triton ( 218 ms )