Ansicht
Dokumentation

ABENCLASS_INTERFACE_DEFINITION - CLASS INTERFACE DEFINITION

ABENCLASS_INTERFACE_DEFINITION - CLASS INTERFACE DEFINITION

BAL Application Log Documentation   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Definition von Klassen und Interfaces

Die Klassen und Interfaces von ABAP Objects können entweder global oder lokal definiert werden.

  • Globale Klassen und Interfaces werden zentral in der Klassenbibliothek im Repository abgespeichert. Technisch gesehen werden globale Klassen und Interface in Class- bzw. Interface-Pools definiert. Die globalen Klassen und Interfaces sind für alle ABAP-Programme eines AS ABAP sichtbar. Der Zugriff wird durch die Paketprüfung geregelt. Die globalen Klassen und Interfaces liegen im Namensraum aller globalen Typen eines AS ABAP.
  • Lokale Klassen und Interfaces können innerhalb beliebiger Programme außer Interface-Pools und Typgruppen definiert werden. Sie können statisch nur im definierenden Programm verwendet werden. Dynamische Zugriffe sind auch über Programmgrenzen hinweg möglich, werden aber nicht empfohlen. Bei der Verwendung einer Klasse in einem ABAP-Programm, sucht das System zuerst nach einer lokalen, dann nach einer globalen Klasse des angegebenen Namens. Ansonsten gibt es bei der Verwendung keine Unterscheidung zwischen globalen und lokalen Klassen bzw. Interfaces.

Bei lokalen Klassen, die in nur einem Programm verwendet werden können, reicht es normalerweise, die öffentliche Schnittstelle, d.h. die nach außen sichtbaren Komponenten, passend zu diesem Programm zu definieren. Globale Klassen stehen dagegen systemweit zur Verfügung. Deshalb kann die öffentliche Schnittstelle einer globalen Klasse immer nur mit Bezug auf systemweit sichtbare Datentypen typisiert werden.

Die Syntax zur Definition von Klassen und Interfaces ist für lokale und globale Klassen bzw. Interfaces im Wesentlichen gleich. Der einzige Unterschied besteht in einem Zusatz PUBLIC, der globale Klassen bzw. Interface gegenüber lokalen Deklarationen auszeichnet.

Globale Klassen und Interfaces können im Class Builder entweder in einem formularbasierten oder einem quelltextbasierten Modus bearbeitet werden. Im formularbasierten Modus generiert der Class Builder den entsprechenden Code, auf den im quelltextbasierten Modus direkt zugegriffen werden kann. In den ABAP Development Tools (ADT) gibt es nur den quelltextbasierten Modus.

Definition von Klassen

Klassen bestehen aus ABAP-Quelltext, der innerhalb der Anweisungen CLASS - ENDCLASS eingeschlossen ist. Eine vollständige Klassendefinition besteht aus einem Deklarationsteil und falls erforderlich aus einem Implementationsteil.

Der Deklarationsteil einer Klasse des Namens class besteht aus einem Anweisungsblock

CLASS class DEFINITION.
...
ENDCLASS.

Der Deklarationsteil enthält die Deklaration aller Komponenten (Attribute, Methoden, Ereignisse) einer Klasse. Alle Komponenten einer Klasse müssen explizit einem Sichtbarkeitsbereich (PUBLIC SECTION, PROTECTED SECTION, PRIVATE SECTION) zugeordnet werden, der definiert, von wo aus auf die Komponenten zugegriffen werden kann. Bei lokalen Klassen gehört der Deklarationsteil von Klassen zu den globalen Datendeklarationen und sollte deshalb auch am Anfang des Programms stehen.

Falls im Deklarationsteil einer Klasse Methoden deklariert werden, benötigt die Klasse auch einen Implementierungsteil. Dieser besteht aus einem Anweisungsblock

CLASS class IMPLEMENTATION.
...
ENDCLASS.

Der Implementierungsteil einer Klasse enthält die Implementierung aller Methoden dieser Klasse. Methoden sind als Prozeduren Verarbeitungsblöcke des ABAP Programms. Die Anordnung des Implementierungsteils im Quelltext ist also völlig unerheblich. Der Übersichtlichkeit wegen sollten entweder alle Implementierungsteile lokaler Klassen am Ende des Programms aufgeführt werden oder direkt hinter dem zugehörigen Definitionsteil. Im zweiten Fall ist aber zu beachten, dass dann nachfolgende nicht-deklarative Anweisungen explizit einem Verarbeitungsblock, wie z.B. START-OF-SELECTION, zugeordnet werden müssen, um erreichbar zu sein.

Definition von Interfaces

Die Definition eines Interfaces intf wird durch die Anweisungen

INTERFACE intf.
...
ENDINTERFACE.

Die Definition enthält die Deklaration aller Komponenten (Attribute, Methoden, Ereignisse) des Interfaces. In Interfaces können die gleichen Komponenten definiert werden, wie bei einer Klassendefinition. Die Komponenten von Interfaces können nicht explizit einem Sichtbarkeitsbereich zugeordnet werden, da die Komponenten von Interfaces bei ihrer Implementierung in einer Klasse immer den öffentlichen Bereich der Klasse erweitern. Für Interfaces gibt es keinen Implementierungsteil, da die Methoden eines Interface in den Klassen implementiert werden müssen, die das Interface implementieren






TXBHW - Original Tax Base Amount in Local Currency   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7118 Date: 20240523 Time: 171751     sap01-206 ( 123 ms )