Konstruktor

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Eine spezielle Methode einer Klasse ist der Konstruktor.

Konstruktur-Methodennamen CONSTRUCTOR und CLASS_CONSTRUCTOR

  • Die Methoden für den statischen Konstruktor und den Instanzkonstruktor können in der Klasse vorhanden sein, müssen aber nicht.
  • Für die Klasse gibt es den statischen Konstruktur mit dem speziellen Methodennamen CLASS_CONSTRUCTOR.
  • Für die Instanzen der Klasse gibt es den speziellen Methodennamen CONSTRUCTOR

Parameter von Konstruktoren

Instanzkonstruktor

  • FÜr den Instanzkonstruktor sind optionale Importparameter erlaubt. Den Methoden können also nur Variablen übergeben werden.
  • Der Instanz-Konstruktor gibt keine Parameter zurück.

Statischer Konstruktor

  • Der statische Konstruktur wird nicht direkt aufgerufen. Der statische Konstruktur wird implizit bei der ersten Verwendung der Klasse ausgeführt.
  • Daher sind auch keine Parameter zulässig.

Anlage von Konstruktoren im Class-Builder per Menü

Der Klassen-Konstruktor sowie der Instanzkonstruktor werden nicht durch die Eingabe der Methodennamen CONSTRUCTOR bzw. CLASS_CONSTRUCTOR angelegt, sondern über das Menü im Class Builder.

Constructor Klasse3.jpg


Instanzkonstruktor Methode CONSTRUCTOR

Grundlagen

Bei jeder Erzeugung einer Instanz einer Klasse wird der (Instanz-)konstruktur aufgerufen, sofern er in der Klasse existiert.

In der Klasse wird diese Methode mit dem reservierten Methodennamen "Constructor" angelegt.

Beispiel für Instanz-Konstruktur CONSTRUCTOR

Methode CONSTRUCTOR ist in dem Reiter METHODEN der Klasse aufgeführt

Constructor Klasse1.jpg


Die Methode CONSTRUCTOR kann lediglich Importparameter haben, keine Exportparameter.

Constructor Klasse2.jpg


Im Rahmenprogramm wird eine Referenzvariable definiert und mit CREATE OBJECT im Hauptspeicher erzeugt. Die Importparameter des Konstrukturs werden mit Select-Options-Parametern versorgt. Da es nur eine Methode CONSTRUCTOR in einer Klasse geben kann, muss der Methodenname CONSTRUCTOR bei der Objektinstanzierung nicht angegeben werden.

DATA: go_rep TYPE REF TO ycoc_sv_clrep0001.

CREATE OBJECT go_rep
  EXPORTING
   it_selopt_matnr = p_mat[]
   it_selopt_werks = p_wer[]
   it_selopt_charg = p_cha[]
   it_selopt_khc   = p_khc[]
   it_selopt_lgort = p_lgo[]
   it_selopt_prdha = p_pha[]
   i_budat         = p_bud
   i_stock         = p_sto
  EXCEPTIONS
   error_selection = 1
   OTHERS          = 2.

Klassen-Konstruktur (CLASS-CONSTRUCTOR)

Grundlagen

Der Klassenkonstruktur wird einmalig bei der ersten Instanzierung eines Objekts einer Klasse aufgeführt, nicht bei weiteren Instanzen. Er wird mit dem reservierten Methodennamen "CLASS_CONSTRUCTOR" in der Klasse angelegt. Import- und Exportparameter sind beim Klassenkonstruktor nicht zulässig. Die Methode ist daher auch nicht bei der Instanziierung der Klasse zu sehen.

Klassenkonstruktor Coding

method CLASS_CONSTRUCTOR.
   break reberstein. 
endmethod.


Literatur