SAP Career Guide - A beginner’s manual on SAP careers for students and professionals

Prima Einstieg in die Welt von SAP.

F. Riesner

Schnelleinstieg in SAP ABAP Objects, 2. Auflage

Sie wollen den Umstieg auf ABAP Objects innerhalb kurzer Zeit schaffen? Dann bietet Ihnen dieses Buch einen direkten Weg in die Welt von ABAP OO. Eine Gegenüberstellung der beiden Programmierwerkzeuge prozedurales ABAP und ABAP Objects liefert Ihnen ...

Leseprobe
10% Rabatt

Jetzt 10% Rabatt sichern! Melden Sie sich für unseren Newsletter an und erhalten Sie 10% Rabatt auf das Digital-Abo für unsere SAP-Lernplattform!

Inhaltsverzeichnis

  • Vorwort
  • 1 ABAP Objects versus prozedurales ABAP
  • 2 Klassen und Objekte in ABAP Objects
  • 3 Fortgeschrittene Techniken
  • 4 Zusammenfassung
  • A   Autor
  • B   Disclaimer
  • Interesse?

Weitere Informationen

Autor/in:

Rüdiger Deppe

Katgorie:

SAP-Programming

Sprache:

Deutsch

Leseprobe

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.

ABAP-Objects

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.

ABAP-Objects

Abbildung 2.2: Class Builder – Benennung Objekttyp

5.   Geben Sie im Feld Beschreibung eine Bezeichnung ein (siehe Abbildung 2.3).

ABAP-Objects

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.

ABAP-Objects

Abbildung 2.4: Class Builder – Methodenansicht

Alle Inhalte. Mehr Informationen. Jetzt entdecken.

et.training - Ihre Lernplattform für SAP-Software

  • Zugriff auf alle Lerninhalte1
  • Regelmäßige Neuerscheinungen
  • Intelligenter Suchalgorithmus
  • Innovatives Leseerlebnis
  • Maßgeschneidere Lernpfade
  • Zertifikate & QA-Tests2

Sie haben bereits ein Konto?

1 Sie erhalten Zugriff auf alle Lerninhalte. Online-Trainings, Zertifikate sind NICHT Teil der Flatrate.

2 Weitere Informationen auf Anfrage.