Schnelleinstieg in SAP ABAP Objects - Rüdiger Deppe - E-Book

Schnelleinstieg in SAP ABAP Objects E-Book

Rüdiger Deppe

0,0
19,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

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 den perfekten Einstieg, um die Vorteile des objektorientierten Konzepts von ABAP OO zu erkennen.

Anhand einfach aufgebauter und mühelos anwendbarer Übungsprogramme erschließt sich Einsteigern in ABAP Objects auf leicht verständliche Weise, wie sie eigenständig Programme planen, konzipieren und auch realisieren können. Leser, die schon etwas sattelfester im Umgang mit ABAP OO sind, erhalten zudem Einblicke in die Object Services und erfahren, was sich hinter den Begriffen Factory-Methode, Shared Memory sowie MVC-Prinzip verbirgt. Run Time Type Services (RTTS) und ABAP-Unit-Tests (TDD) runden diese tieferen Einsichten ab.

Der Autor veranschaulicht jede Übung durch zahlreiche SAP-Screenshots und Codingbeispiele. In der 2. Auflage berücksichtigt er dabei, welche Neuerungen sich in Release 7.4 und 7.5 für die ABAP-Sprache ergeben haben.


  • ABAP Objects verständlich erklärt
  • ABAP-OO-Programme planen, konzipieren und realisieren
  • Entwicklungen testen mit TDD (Test Driven Development)
  • 2. Auflage mit Änderungen von ABAP 7.4 bzw. 7.5

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB

Seitenzahl: 146

Veröffentlichungsjahr: 2017

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Rüdiger Deppe

Schnelleinstieg in SAP® ABAP Objects

2., erweiterte Auflage

ISBN:978-3-96012-311-8 (ePUB)Lektorat:Anja AchillesKorrektorat:Christine WeberCoverdesign:Philip Esch, Martin MunzelCoverfoto:fotolia #51365859 | Urheber: milojeSatz & Layout:Johann-Christian Hanke

Alle Rechte vorbehalten

2. Aufl. 2017, Gleichen

© Espresso Tutorials GmbH

URL:www.espresso-tutorials.com

Das vorliegende Werk ist in allen seinen Teilen urheberrechtlich geschützt. Alle Rechte vorbehalten, insbesondere das Recht der Übersetzung, des Vortrags, der Reproduktion und der Vervielfältigung. Espresso Tutorials GmbH, Zum Gelenberg 11, 37130 Gleichen, Deutschland.

Ungeachtet der Sorgfalt, die auf die Erstellung von Text und Abbildungen verwendet wurde, können weder der Verlag noch Autoren oder Herausgeber für mögliche Fehler und deren Folgen eine juristische Verantwortung oder Haftung übernehmen.

Feedback: Wir freuen uns über Fragen und Anmerkungen jeglicher Art. Bitte senden Sie diese an: [email protected].

Inhaltsverzeichnis

Cover
Titelseite
Copyright / Impressum
Vorwort
1 ABAP Objects versus prozedurales ABAP
1.1 Begriffsbestimmung
1.2 Warum ABAP Objects?
1.3 Gedankenmodelle und Herangehensweisen beider Varianten
2 Klassen und Objekte in ABAP Objects
2.1 Globale und lokale Klassen
2.2 Attribute und Methoden
2.3 Eigenständige Datentypen einer Klasse
2.4 Konstruktoren
2.5 Objekte erzeugen und verarbeiten
2.6 Vererbung
2.7 Interfaces
2.8 Aliasse
2.9 Friends
2.10 Arbeiten mit Objektreferenzen
2.11 Polymorphie
2.12 Ereignisse
2.13 Ausnahmebehandlung
3 Fortgeschrittene Techniken
3.1 OO-Transaktion
3.2 Object Services
3.3 Die Factory-Methode
3.4 Shared Objects
3.5 Das MVC-Prinzip
3.6 Datenreferenzen
3.7 Run Time Type Services (RTTS)
3.8 ABAP-Unit-Tests/TDD
4 Zusammenfassung
A Autor
B Disclaimer

Willkommen bei Espresso Tutorials!

Unser Ziel ist es, SAP-Wissen wie einen Espresso zu servieren: Auf das Wesentliche verdichtete Informationen anstelle langatmiger Kompendien – für ein effektives Lernen an konkreten Fallbeispielen. Viele unserer Bücher enthalten zusätzlich Videos, mit denen Sie Schritt für Schritt die vermittelten Inhalte nachvollziehen können. Besuchen Sie unseren YouTube-Kanal mit einer umfangreichen Auswahl frei zugänglicher Videos:

https://www.youtube.com/user/EspressoTutorials.

Kennen Sie schon unser Forum? Hier erhalten Sie stets aktuelle Informationen zu Entwicklungen der SAP-Software, Hilfe zu Ihren Fragen und die Gelegenheit, mit anderen Anwendern zu diskutieren:

http://www.fico-forum.de.

Eine Auswahl weiterer Bücher von Espresso Tutorials:

Antje Kunz:

SAP® Legacy System Migration Workbench (LSMW)

Dr. Boris Rubarth:

Schnelleinstieg in ABAP®

Thomas Stutenbäumer:

SAP® Praxishandbuch ABAP Teil 1 – Konzeption, Entwicklung und Debugging

Michal Krawczyk:

SAP® SOA Integration – Enterprise Service Monitoring

Thomas Stutenbäumer:

SAP® Praxishandbuch ABAP Teil 2 – Performance, Erweiterungen, Transportwesen

Kathi Kones:

SAP® List Viewer (ALV) – A Practical Guide for ABAP Developers

Marcel Schmiechen:

Adobe® Interactive Forms – Interaktive Formulare in SAP®

Jelena Perfiljeva:

What on Earth is an SAP® IDoc?

Paul Bakker & Rick Bakker:

How to Pass the SAP® ABAP Certification Exam

Christoph Lordieck:

SAP®-Schnelleinstieg: ABAP-Entwicklung in Eclipse

Ulrich Bähr, Axel Treusch:

Praxisbuch SAP® Interactive Forms und Adobe LiveCycle Designer

Rüder Deppe:

ABAP-Programmierung unter SAP® S/4HANA

Vorwort

SAP hat mit ABAP eine leistungsfähige Programmiersprache entwickelt, die immer wieder Neuerungen unterworfen ist. Solange seitens SAP ausschließlich die prozedurale Variante von ABAP verfügbar war, stand diese Programmiersprache in der Kritik, da sie gegenüber den damals schon existierenden objektorientierten Programmiersprachen als veraltet galt.

Schließlich hat die SAP ABAP Objects als objektorientierte Variante entwickelt. Während lange Zeit das alte prozedurale ABAP und ABAP Objects gleichberechtigt nebeneinander eingesetzt werden konnten, sind die neuen SAP-Features nur noch mit ABAP Objects anwendbar. So sind z.B. die modernen Benutzeroberflächen ab WebDynpro-Technik nur noch objektorientiert nutzbar.

Dieses Buch ist sowohl für Anfänger in ABAP Objects als auch für Fortgeschrittene geeignet. Als Anfänger finden Sie hier mühelos anwendbare Übungsprogramme, mit denen Ihnen das Thema »ABAP Objects« auf leicht verständliche Weise nähergebracht wird. Sie sollten aber zumindest ABAP-Grundkenntnisse besitzen. Falls Sie bereits fortgeschrittener Anwender sind, finden Sie hier neue Anregungen zum Umgang mit der objektorientierten Arbeitsweise.

In Kapitel 1 werden zunächst das prozedurale ABAP und ABAP Objects gegenübergestellt. Hier erkläre ich Ihnen, welche Vorteile ABAP Objects gegenüber dem prozeduralen ABAP bietet. Außerdem stelle ich die hinter beiden Programmierweisen stehenden Gedankenmodelle vor und erkläre, wie man planungs- und gedankenmäßig in ein ABAP-Objects-Programm einsteigen sollte.

In Kapitel 2 werden Ihnen die Grundlagen von ABAP Objects dargelegt. Ich stelle Ihnen die unterschiedlichen Arten von Klassen vor und erläutere, wie man solche Klassen aufbaut. Außerdem vermittle ich Ihnen, wie Sie mit den aus den Klassen generierten Objekten weiter verfahren. Mit ABAP-Release 7.4 haben sich diverse Neuerungen in der ABAP-Sprache ergeben. An Stellen, an denen sich diese Änderungen auf ABAP Objects auswirken, verweise ich explizit auf die aktuellen Codings.

Das ABAP-Release 7.5 hat für ABAP Objects keine weiteren Modifikationen gebracht und findet daher in diesem Buch keine Berücksichtigung.

In Kapitel 3 finden Fortgeschrittene gute Anregungen für ihre tägliche Arbeit mit ABAP Objects. Um dieses Kapitel zu verstehen, sind durchaus einige Fertigkeiten im Umgang mit ABAP Objects notwendig. Sie lernen OO-Transaktionen kennen und erfahren, wie man mit den Object Services, dem Persistenzdienst für ABAP Objects, umgeht. Außerdem werden die Factory-Methode als moderne Vorgehensweise in ABAP Objects, das Shared Memory als benutzer- und programmübergreifendes Hauptspeichermedium sowie das MVC-Prinzip vorgestellt. Danach erkläre ich den Umgang mit Datenreferenzen und den Run Time Type Services (RTTS). Als Abschluss erfahren Sie, welche Möglichkeiten sich Ihnen mit dem gegenüber früher deutlich verbesserten Tool ABAP-Unit-Test (TDD) bieten.

Der Leser dieses Buches findet viele Übungsprogramme, mithilfe derer er seine gelernte Theorie gleich in die Praxis umsetzen kann. Bei den Übungsprogrammen für Kapitel 2 ist es erforderlich, dass Sie diese von Anfang bis Ende durcharbeiten, weil sie jeweils auf das vorher Gelernte aufbauen. Auch bei den Übungsprogrammen des Kapitels 3 ist dieses Vorgehen teilweise anzuraten.

Ich bedanke mich bei dem Team von Espresso Tutorials für die Unterstützung bei der Erstellung dieses Buches, vor allem bei Anja Achilles, Johann-Christian Hanke und Martin Munzel. Außerdem gilt mein Dank meiner Frau Ivon für ihren administrativen Beistand.

Im Text verwenden wir Kästen, um wichtige Informationen besonders hervorzuheben. Jeder Kasten ist zusätzlich mit einem Piktogramm versehen, das diesen genauer klassifiziert:

Hinweis

Hinweise bieten praktische Tipps zum Umgang mit dem jeweiligen Thema.  

Beispiel

Beispiele dienen dazu, ein Thema besser zu illustrieren.  

Achtung

Warnungen weisen auf mögliche Fehlerquellen oder Stolpersteine im Zusammenhang mit einem Thema hin.

Zum Abschluss des Vorwortes noch ein Hinweis zum Urheberrecht: Sämtliche in diesem Buch abgedruckten Screenshots unterliegen dem Copyright der SAP SE. Alle Rechte an den Screenshots hält die SAP SE. Der Einfachheit halber haben wir im Rest des Buches darauf verzichtet, dies unter jedem Screenshot gesondert auszuweisen.

Optimale Anzeige der Quelltexte

Dieses Buch enthält zahlreiche Computerquelltexte mit Programmiercode. Damit Sie die korrekten Umbrüche sehen, empfehlen wir Ihnen, Ihr Lesegerät ggf. in den Landschaftsmodus (Querformat) zu schalten.

1   ABAP Objects versus prozedurales ABAP

Sie haben bisher erfolgreich mit prozeduralem ABAP gearbeitet. Dieses Kapitel gibt Auskunft darüber, warum Sie auf ABAP Objects umsteigen und wie Sie gedanklich an die neue Problemstellung herangehen sollten.

1.1   Begriffsbestimmung

Die frühere, althergebrachte Variante der ABAP-Programmierung bezeichnen wir als prozedurales ABAP. Es wird ein Programm erstellt, an dessen Anfang die Selektion von Daten steht. Diese werden anschließend verarbeitet und am Ende des Programms ausgegeben.

Die neue Variante der ABAP-Programmierung bezeichnen wir als ABAP Objects oder ABAP OO. ABAP Objects besteht aus Klassen. Jede Klasse stellt ein betriebswirtschaftliches Objekt (ein Haus, ein Auto, ein Flugzeug) dar, mit welchem sich das Programm beschäftigt.

Eine Klasse in ABAP Objects besteht aus Komponenten. Dieses sind die

Attribute

(die Eigenschaften des betriebswirtschaftlichen Objekts),

Methoden

(Verarbeitung der Attribute),

Ereignisse

(Veröffentlichungen von Zustandsänderungen der Klasse, die klassenintern oder klassenübergreifend Methoden auslösen).

1.2   Warum ABAP Objects?

Viele Entwickler arbeiten bereits seit Langem erfolgreich mit prozeduralem ABAP. Das ist das, was sie gelernt haben, was sie schnell und einfach programmieren können. Sie fragen sich vermutlich: »Warum sollte ich ABAP Objects benutzen?«

Wenn man Klassen, Attribute, Methoden und Ereignisse mit geeigneten sprechenden Bezeichnungen versieht, ist eine Wartung des Programms wesentlich einfacher und damit schneller sowie komfortabler durchführbar, als es bei prozeduralem ABAP möglich ist, weil die Modularisierung wesentlich ausgeprägter ist. Methoden sollten allerdings nach Möglichkeit nicht aus zu viel Coding bestehen.

Eine Klasse ist nur über klar definierte Schnittstellen von anderen Klassen oder Programmstellen aus ansprechbar. Dadurch bekommt der Verwender (ein Programm, ein Funktionsbaustein oder andere Klassen) der Klasse nur das zu sehen, was ihn interessieren muss. Interne Vorgänge innerhalb der Klasse bleiben verborgen und somit bleibt die Konsistenz des Klassenobjekts erhalten. Dieser Kapselungsgedanken der Objektorientierung ist perfekt.

Bei den Ausnahmeklassen (Klassen, die im Fall einer Ausnahme erzeugt werden) lassen sich im Fehlerfall die Ausnahmen besser verwalten, als dieses bei prozeduralen Ausnahmen der Fall ist.

Mehrere betriebswirtschaftliche Objekte des gleichen Typs lassen sich mithilfe von Klassen wesentlich besser und einfacher verwalten als mit Funktionsgruppen. Bei Klassen spricht man in diesem Zusammenhang von Mehrfachinstanziierung. In Funktionsgruppen gibt es nur programmlokale Variablen, mit denen die gleichzeitige Verarbeitung mehrerer Objekte schwierig ist.

Neue ABAP-Konzepte wie z.B. WebDynpro für ABAP sind nur noch unter Einsatz von ABAP Objects durchführbar.

Die prozedurale Form-Routine (FORM … ENDFORM bzw. PERFORM) wurde von SAP inzwischen für obsolet erklärt.

Der einzige Nachteil von ABAP Objects besteht darin, dass keine SAP-GUI-Dynpros in Klassen angelegt werden können. Daher können Sie in Klassen keine CALL SCREEN-Anweisung verwenden. Zu diesem Zweck sollten Sie den CALL SCREEN-Aufruf in einem Funktionsbaustein durchführen, den Sie dann in einer Klasse aufrufen.

Ein Umschwenken auf ABAP Objects ist schwierig und der Umgang mit ABAP Objects zunächst ungewohnt. Aber nach längerer Zeit mit ABAP Objects werden Sie sich wundern, warum Sie es früher anders gemacht haben.

1.3   Gedankenmodelle und Herangehensweisen beider Varianten

Wenn Sie Ihre Programmentwicklung von prozeduralem ABAP nach ABAP Objects ändern, müssen Sie sich darüber im Klaren sein, dass Sie Ihre gedankliche Herangehensweise an das zu lösende Problem vollständig ändern müssen.

Hausbau mit prozeduralem ABAP

Nehmen wir an, Sie schreiben ein Programm zum Bauen eines Hauses. Beim prozeduralen ABAP fangen Sie an, indem Sie Bauarbeiter, Maschinen und Baustoffe selektieren. Danach werden diese Ressourcen verarbeitet, und irgendwann am Ende Ihres Programms steht das Haus.

Bei dieser Vorgehensweise wird außer Acht gelassen, dass es sich bei dem Haus lediglich um ein virtuelles Zahlenkonstrukt innerhalb des Computers handelt. Dieses besteht aus beispielsweise 4 Außenwänden, 8 Innenwänden, 10 m Höhe und 7 Fenstern. Ihr Programm ist nicht dazu da, die Tätigkeiten des Hausbaus abzubilden, sondern sollte das fertige Haus darstellen.

Hausbau mit ABAP Objects

Das virtuelle Zahlenkonstrukt des Hauses wird in der Klasse dargestellt, die das Haus repräsentiert. Sie besitzt die Attribute: Außenwände 4, Innenwände 8, Höhe 10 und Fenster 7. Ermittelt und bearbeitet werden diese Attribute in den Methoden dieser Klasse.

Machen Sie sich bei ABAP Objects erst bewusst, welches Objekt Ihre Klasse konkret abbilden soll. Erst dann legen Sie die Attribute, also die Eigenschaften dieses Objekts, an. Anschließend erstellen Sie die Methoden, mit denen Sie die Werte für die Attribute ermitteln und verarbeiten.

Wenn man sich mit ABAP Objects befasst, taucht zwangsläufig die Frage auf, wie viele und welche Klassen angelegt werden sollen. Dieses erfordert einige Übung und Erfahrung. Als Pauschalregel kann man ansetzen, dass für jede Anwendungs-Datenbanktabelle eine entsprechende Klasse erstellt wird. Es ist aber aufgrund von Vererbung, MVC-Prinzip oder anderer Umstände eventuell notwendig, noch weitere Klassen anzulegen. Die Begriffe »Vererbung« sowie »MVC-Prinzip« werde ich später in den Abschnitten 2.6 bzw. 3.5 noch näher erläutern. Für Customizingtabellen ist es meist nicht erforderlich, eine Klasse zu erstellen.

Vergessen Sie alles, was Sie bisher über prozedurale Programmentwicklung gehört und gedacht haben. Programmieren Sie mit ABAP Objects! Sogar das Anlegen eines Programms können Sie, wenn Sie möchten, vergessen, weil Sie mithilfe einer OO-Transaktion Ihren Transaktionscode direkt mit einer Klasse verbinden können.

2   Klassen und Objekte in ABAP Objects

Was sind Klassen? Aus welchen Komponenten bestehen sie, und wie arbeitet man mit ihnen? Wie werden Instanzen (Objekte) erzeugt? Antworten auf diese Fragen finden Sie in diesem Kapitel.

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

2.2   Attribute und Methoden

Die wichtigsten Komponenten einer Klasse sind Attribute und Methoden. Die Attribute stellen die Eigenschaften des Objekts dar, welches die Klasse repräsentiert. Um diese Attribute zu ermitteln und zu verarbeiten, werden die Methoden benötigt.

Es gibt sie als Instanzkomponenten und statische Komponenten.

Instanzkomponenten sind die eigentlichen Eigenschaften und Verarbeitungsmethoden des Objekts. Sie sind nur ansprechbar, nachdem aus der Klasse ein Objekt gebildet (instanziiert) wurde. Werden mehrere Objekte aus der Klasse instanziiert, hat jedes Objekt seine eigenen Werte in den Instanzattributen.

Statische Komponenten hingegen sind jederzeit verwendbar. Es müssen nicht erst Objekte aus der Klasse gebildet werden, um mit den statischen Komponenten arbeiten zu können. Statische Attribute haben nur einen Wert innerhalb der Klasse, auch wenn mehrere Objekte aus dieser instanziiert wurden. Sie sind nur notwendig, wenn alle Objekte auf den gleichen Wert zugreifen müssen, oder falls sie gebraucht werden, bevor mit der Klasse ein Objekt erzeugt wurde.

2.2.1   Attribute

Attribute können als Variablen oder Konstanten angelegt werden. Es wird empfohlen, variable Attribute immer im Sichtbarkeitsbereich »private« anzulegen, um den Objektschutzgedanken der Klasse zu erfüllen. Zur Verarbeitung benötigt man dann sogenannte SET- und GET-Methoden. Die SET-Methode wird verwendet, um das Attribut mit einem Wert zu füllen, und mit der GET-Methode lesen Sie den Wert des Attributs. Jede Klasse soll allein für die Versorgung ihrer eigenen Attribute zuständig sein.

Attribute nie »public« ohne »read-only«

In letzter Zeit mehren sich allerdings die Stimmen, die sagen, man soll variable Attribute aus Performancegründen als »public« und »read-only« deklarieren. In diesem Fall kann man sich die GET-Methoden ersparen. Die Klasse füllt dann das Attribut mit einem Wert, Aufrufer der Klasse können das Attribut aber nur lesen. Legen Sie nie ein variables Attribut »public« ohne »read-only« an!