Instanz Klasse erzeugen mit NEW im neuen ABAP

Aus SAP-Wiki
Wechseln zu:Navigation, Suche

Siehe Neues ABAP (ab Release 7.40) .

Ab ABAP-Release 7.40 SP2 gibt es die Möglichkeit eine Instanz einer Klasse anzulegen mit NEW.

Klassische Anlage Instanz einer Klasse mit CREATE OBJECT

Data: lo_class type ref to lcl_classe.

Create object lo_class.

Anlage Instanz einer Klasse mit NEW

Die Instanz der Klasse wird angelegt mit Verweis auf die (lokale) Klasse "LCL_CLASSE". Gegebenfalls würden die Parameter für die CONSTRUCTOR-Methode übergeben.

DATA(lo_class) = NEW lcl_classe( ).

Wenn die Referenzvariable bereits angelegt wurde, wird die Klassenreferenz durch "#" ersetzt.

Data: lo_class type ref to lcl_class.

DATA(lo_class) = NEW #( ).

Beispiel mit Klasse Z_CL_TEST_EBERSTEIN

In der Klasse Z_CL_TEST_EBERSTEIN werden die 2 Methoden CLASS_CONSTRUCTOR und CONSTRUCTOR angelegt.

Definition Methoden

NewKlasse1.JPG

Implementierung Methoden

Die statische Methode CLASS_CONSTRUCTOR gibt eine Message aus.

NewKlasse2.JPG


Die Instanzmethode CONSTRUCTOR gibt ebenfalls eine Message aus.

NewKlasse3.JPG

Instanzierung Objekt im Report

Führt man nun in einem Report die folgende Zeile aus, wird eine Instanz auf die Klasse Z_CL_TEST_EBERSTEIN erzeugt.

DATA(lo_klasse) = NEW Z_CL_TEST_EBERSTEIN( ).

Ausführung

die Methoden CLASS_CONSTRUCTOR und CONSTRUCTOR werden in dieser Reihenfolge ausgeführt.

NewKlasse4.JPG


NewKlasse5.JPG

Instanzkonstruktor mit Importparameter

Der Instanzkonstruktur CONSTRUCTOR bekommt nun einen Importparameter IV_NAME. Da nur Importparameter erlaubt sind, gibt es auch keine Spalte "Art", wo "Importing, "Exprting" etc. gewählt werden können.

NewKlasse6.JPG


Die Instanzmethode CONSTRUCTOR wird nun in der Implementierung um den Parameter IV_NAME erweitert.

NewKlasse7.JPG


Die Instanziierung der Klasse wird um die Übergabe vom Wert "Hugo" erweitert.

DATA(lo_klasse) = NEW Z_CL_TEST_EBERSTEIN( 'Hugo' ).


Entsprechend verändert sich die Ausgabe vom Messagefenster der Instanzmethode

NewKlasse8.JPG

Web-Links

Literatur