Klassenkonstruktor in einer Klasse

Einführung

Wir haben in unserem vorherigen Artikel Konstruktoren verstanden. Ein Konstruktor ist eine spezielle Methode, die automatisch aufgerufen wird, wenn ein Objekt erstellt oder instanziiert wird. Es gibt zwei Typen: Instanzkonstruktor und statischer Konstruktor. Der statische Konstruktor wird auch als Klasse bezeichnet Konstruktor wird immer dann aufgerufen, wenn die Klasse zum ersten Mal aufgerufen wird, sei es über eine Instanz oder Klasse.

Der Klassenkonstruktor hat einige spezielle Eigenschaften wie,

  • Jede Klasse hat einen einzelnen statischen Konstruktor.
  • Der Klassenkonstruktor wird für jede Klasse genau einmal aufgerufen.
  • Die Methode hat keine Import-/Exportparameter und kann nicht Ausnahme auslösen.

Der Klassenkonstruktor kann auch verwendet werden, um Standardwerte für globale Attribute unabhängig von Instanz oder Methoden zu setzen. Außerdem ist bei der Deklaration des Klassenkonstruktors zu beachten, dass der Name des Konstruktors CLASS_CONSTRUCTOR lauten und mit der Anweisung CLASS-METHODS im Deklarationsteil der Klasse deklariert werden muss.

Definition

Ein Klassenkonstruktor ist eine Methode, die automatisch aufgerufen wird, wenn der erste Aufruf der Klasse erfolgt, möglicherweise über eine Instanz oder Klasse.

Beispiel

Schauen wir uns ein Beispiel an:

**** Klassendefinition****

KLASSE ZCL_DEMO DEFINITION.

ÖFFENTLICHER ABSCHNITT.

METHODEN: KONSTRUKTOR. „Instanzkonstruktor“

KLASSEN-METHODEN: CLASS_CONSTRUCTOR. „Statischer Konstruktor“

ENDE KLASSE.

****Klassenimplementierung****

KLASSE ZCL_DEMO IMPLEMENTATION.

METHODE KONSTRUKTOR.

SCHREIBEN: „Instanzkonstruktor wird initiiert“.

BEENDEN SIE METHODE.

METHODE CLASS_CONSTRUCTOR.

LV_DATE = SY-DATUM. „Wert des Attributs ändern“

BEENDEN SIE METHODE.

ENDE KLASSE.

START-DER-AUSWAHL.

DATEN: LO_DEMO TYP REF ZU ZCL_DEMO.

**Erstellung von Klassenobjekten**

OBJEKT LO_DEMO ERSTELLEN.

**Immer wenn der erste Aufruf der Klasse erfolgt, wird CLASS_CONSTRUCTOR ausgelöst

SCHREIBEN: „INSTANTIATING CLASS CONSTRUCTOR“, ZCL_DEMO=>LV_DATE.

 

Eine häufig gestellte Frage ist, ob wir die Konstruktoren neu definieren können. Es ist also ein großes NEIN, da die Neudefinition von Konstruktoren nicht erlaubt ist und das Programm in den Fehler „Konstruktor darf nicht überdefiniert sein“ gerät.

Hinterlassen Sie eine Nachricht

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.