Reading Sample
2.1 Globale und lokale Klassen
Die Klasse ist der elementare Hauptbestandteil von ABAP Objects (wie übrigens bei jeder anderen objektorientierten Programmiersprache auch). Eine Klasse bezeichnet ein Objekt aus der realen Welt, das mittels dieser Klasse beschrieben werden soll. Einfach ausgedrückt, hieße das z.B.: Ein Flugzeug wird durch die Klasse FLUGZEUG dargestellt, ein Haus durch die Klasse HAUS. Allerdings gilt es, die im jeweiligen Unternehmen vorhandenen Namenskonventionen zu beachten.
Als Pauschalregel kann zugrunde gelegt werden, dass jede Anwendungs-Datenbanktabelle durch eine Klasse repräsentiert wird. Später werden wir noch darauf kommen, dass eine Anwendungs-Datenbanktabelle auch durch mehrere vorhandene Klassen repräsentiert werden kann.
Sie können die Teile eines Objekts auf mehrere Klassen verteilen. Dieses geschieht vor allem in Fällen der Vererbung (siehe Abschnitt 2.6), bei der ein Objekt auf Ober- und Unterklassen aufgeteilt wird, und des MVC-Prinzips (siehe Abschnitt 3.5), wo es für jedes Objekt eine Datenmodell-, eine Verarbeitungs- und eine View-Klasse gibt.
Man unterscheidet lokale und globale Klassen. Lokale Klassen werden innerhalb eines Programms definiert (so wie eine normale Datendeklaration) und sind nur innerhalb dieses Programms vorhanden. Globale Klassen werden im Class Builder mit der Transaktion SE24 definiert und stehen systemweit für eine beliebige Verwendung zur Verfügung.
Eine Klasse besteht aus bis zu drei Sichtbarkeitsbereichen:
- public,
- private,
- protected.
Komponenten (Attribute, Methoden und Ereignisse), die als public definiert sind, sind aus jedem Programm oder jeder Klasse aufrufbar und sichtbar. Bei der lokalen Klasse beschränkt sich die Aufrufbarkeit auf das Programm, in welchem die Klasse definiert wurde. Als protected definierte Komponenten sind nur innerhalb der eigenen Klasse, die diese deklariert hat, und innerhalb der Vererbungshierarchie nach unten aufrufbar und sichtbar, während als private definierte Komponenten dies ausschließlich innerhalb der eigenen Klasse sind.
2.1.1 Lokale Klassen
Lokale Klassen werden relativ selten benutzt. Sie werden innerhalb eines Programms angelegt und sind nur in diesem Programm sichtbar sowie verwendungsfähig.
Wir werden uns jetzt nach und nach eine lokale Klasse für ein FLUGZEUG aufbauen.
CLASS lcl_airplane DEFINITION.
ENDCLASS.
CLASS lcl_airplane IMPLEMENTATION.
ENDCLASS.
Listing 2.1
Dieses erste kurze Coding aus Listing 2.1 zeigt, dass Klassen grundsätzlich aus einem Definitionsteil und einem Implementierungsteil bestehen. Bei lokalen Klassen wird dieses besonders deutlich, da beide Teile im Programm explizit ausgefüllt werden.
CLASS lcl_airplane DEFINITION.
PUBLIC SECTION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS lcl_airplane IMPLEMENTATION.
ENDCLASS.
Listing 2.2
Wie Sie in Listing 2.2 sehen, werden im Definitionsteil die einzelnen Sichtbarkeitsbereiche angelegt.
Später werden wir sehen, dass innerhalb der Sichtbarkeitsbereiche die Komponenten definiert werden. Im Rahmen des Implementierungsteils werden wir die Methoden mit Coding füllen.
2.1.2 Globale Klassen
Globale Klassen werden im sogenannten Class Builder (Transaktion SE24) angelegt und stehen dann im gesamten SAP-System zur Verfügung. Sie können den Class Builder auch starten, indem Sie die Transaktion SE80 aufrufen und im Dropdown-Menü Klasse/Interface wählen.
Im Folgenden werden wir eine globale Klasse für Flugdaten erstellen.
1. Rufen Sie die Transaktion SE24 auf. Es öffnet sich der in Abbildung 2.1 gezeigte Screen.
Abbildung 2.1: Class Builder – Einstiegsbild
2. Geben Sie im Feld Objekttyp den Namen der gewünschten Klasse ein (in diesem Fall Z_CL_FLIGHT).
3. Drücken Sie den Button Anlegen.
4. Wählen Sie im darauffolgenden Screen (siehe Abbildung 2.2) die Option Klasse. Auf Interfaces kommen wir in Abschnitt 2.7 noch zu sprechen.
Abbildung 2.2: Class Builder – Benennung Objekttyp
5. Geben Sie im Feld Beschreibung eine Bezeichnung ein (siehe Abbildung 2.3).
Abbildung 2.3: Class Builder – Beschreiben der Klasse
6. Wählen Sie für Inst.-Erzeugung den Eintrag Public. Dies bedeutet, dass jedes Programm oder jede Klasse mithilfe dieser anzulegenden Klasse ein Objekt erzeugen kann. Im Falle von »private« oder »protected« kann das nur innerhalb dieser Sichtbarkeitsbereiche geschehen. Wenn Sie den Eintrag »abstract« wählen, kann kein Objekt aus der Klasse erzeugt werden.
7. Als Klassentyp wählen Sie Gewöhnliche ABAP-Klasse.
8. Setzen Sie einen Haken bei der Checkbox FINAL. Das bewirkt, dass die Klasse nicht vererbt werden kann.
9. Drücken Sie den Button Sichern.
10. Geben Sie ein Paket und danach einen Transportauftrag an. Legen Sie in diesem Fall ein lokales Objekt als Paket an.
Jetzt sind Sie in der Klasse, wie Sie in Abbildung 2.4 sehen, und können diese mit Leben füllen, indem Sie die einzelnen Komponenten anlegen.
Abbildung 2.4: Class Builder – Methodenansicht
All contents. Learn more. Discover now.
et.training - Your learning platform for SAP software
- Access to all learning content1
- Regular new releases
- Intelligent search algorithm
- Innovative reading experience
- Customized learning paths
- Certificates & QA tests2
1 You get access to all learning content. Online trainings, certificates are NOT part of the flat rate.
2 More information on request.