Java Klassenaufbauhttp://newsolutions.de/it/java-klassenaufbau/

10. November 2009 | Von | Kategorie: Programmierung

In unserem vorigen Artikel „Einführung in JAVA“ haben wir Sie in die JAVA-Welt eingeführt. Wir haben gezeigt, daß eine JAVA-Anwendung aus Klassendateien besteht und diese Dateien in benannte und unbenannte Pakete gruppiert werden. Wir haben diese drei Komponenten mit Modulen, Programmen und Service Programmen von ILE RPG IV (Integrated Language Environment) verglichen.

von George Farr und Phil Coulthard

In diesem Artikel werden wir die JAVA-Klassendateien unter das Mikroskop legen, um hinter die Fassade zu schauen und sie mit RPG IV Modulen zu vergleichen. Der Programmfluß einer typischen ILE RPG Anwendung (nach-V3R1) sieht ähnlich aus wie in Abbildung 1 dargestellt. Ein RPG Programm übernimmt die Steuerung in der Hauptroutine des Startmoduls und ruft dann Prozeduren („erwachsene“ Subroutinen), die an folgenden Plätzen stehen können:

  • im gleichen Modul
  • in einem anderen Modul im gleichen Programmobjekt
  • in Modulen, die in Serviceprogrammen zusammengebunden sind.

(Geanu wie in Programmen können auch Serviceprogramme mehrere Module enthalten.)

Eine Java Anwendung besteht aus einer Reihe von CLASS-Dateien, die Java-Bytecode enthalten, der aus Java-Quellcode compiliert wurde. Eine Hauptklassendatei wird von der Befehlszeile (oder durch einen Browser, wenn es sich bei der Klasse um ein Applet handelt) gestartet. Viele weitere Klassendateien können von der Haupt-Klassendatei aufgerufen werden. RPG Module werden aus RPG Quelltextmembern mit dem Befehl CRTRPGMOD (Create RPG Module) erstellt. Java Klassen, auf der anderen Seite, werden aus Java Quelldateien mit Hilfe des Befehlszeilenwerkzeugs JAVAC kompiliert. JAVAC ist Teil des Java Development Kit (JDK)

PaperCamera2012-08-22-17-07-57

 

Module und Klassen

Abbildung 2 zeigt ein typisches RPG IV Modul mit Variablen, die im Kopf in D-Specs definiert werden, gefolgt von einer oder mehrerer Prozeduren. Noch einmal: Prozeduren sind eigenständige, erwachsenen Subroutinen, die in V3R2 bzw. V3R6 zu RPG IV hinzugefügt wurden. Abbildung 3 zeigt eine typische Prozedur. Sie enthält Parameter, lokale Variablen und C-Specs mit Programmlogik. Wichtig ist, daß lokale Variablen auch mit D-Specs definiert werden und zwar vor den C-SPecs. Sie werden bei jedem Aufruf der Prozedur neu initialisiert. Wie kann man dies mit Java vergleichen ? Java´s Gegenpart zu RPG-Modulen sind CLASS-Dateien, die Klassen enthalten. Abbildung 4 zeigt, daß jede Klasse Variablendeklarationen und Methoden enthält. Eine Klassendefinition kann zwei Arten von Variablen definieren: CLASS oder STATIC Variablen, die näherungsweise den globalen Variablen in einem RPG Modul entsprechen. FIELDS oder INSTANCE Variablen, die selbst keine Daten enthalten, sondern als Vorlagen für die Objekterstellung dienen – ein Punkt auf den wir im nächsten Artikel näher eingehen werden.

Wir führen die Grundsyntax für Klassen und Methoden in diesem Artikel ein und stellen die Details zu Klassenvariablen noch etwas zurück. Der gesamte ausführbare Java-Code wird in Methoden gestellt. Sie können auch lokale Variablen innerhalb von Methoden definieren. Diese Variablen können nur innerhalb der Methode verwendet werden, in der sie definiert wurden. Sie werden bei jedem Aufruf der Methode neu initialisiert. Hervorzuheben ist, daß die Variablen an jeder Stelle der Methode definiert werden können, solange die Stelle vor der Position liegt, an der die Variable zum ersten Mal verwendet wird. Abbildung 5 zeigt eine Java-Methode. Hier eine Zusammenfassung des Vergleichs von RPG Modulen und Java-Klassen:


 

RPG
Module
globale Variablen
Prozeduren
lokale Variablen
Code* = kein RPG Gegenstück 

JAVA
Class-Datei
Klasse*
Klassenvaraiablen
Felder*
Methoden
lokale Variablen
Code

Definition von Java-Klassen

Abbildung 6 zeigt eine Java-Quelldatei (links) und eine CLASS-Datei.  Achten Sie darauf, daß der Name der Klasse exakt mit dem Namen der Java-Quelldatei übereinstimmen muß. Die „kompilierte“ Java-Klasse wird den gleichen Namen tragen. Zusätzlich sind Sie auf genau eine Klasse pro Java-Quelldatei beschränkt. (Java erlaubt zwar auch sogenannte INNER Klassen, aber dies ist eine Technik für Fortgeschrittene.) Das Schlüsselwort PUBLIC in Abbildung 6, das als ACCESS MODIFIER verwendet wird, verdeutlicht, daß Coding in jeder anderen Klasse die betrachtete Klasse verwenden darf. Dies bedeutet, daß Sie Klassen schreiben können, die Variablen mit Bezug zu den Variablen der PUBLIC-Klasse definieren können und auch Methoden der PUBLIC-Klasse aufrufen dürfen. Wenn Sie das Schlüsselwort weglassen, kann die Klasse nur von Klassen innerhalb des gleichen Pakets (Package) oder Programms verwendet werden. PUBLIC-Klassen entsprechen also in etwa exportierten Prozeduren in RPG IV und nicht-PUBLIC Klassen entsprechen nicht-exportierten Prozeduren. Die Syntax für die Definition von Java-Klassen ist wie folgt:

([] steht für optionale Einträge, <> für Schlüsselworte und kursive Ausdrücke für Benutzerangaben)

[<class-modifier>] class Name
{

}
Beachten Sie bitte:

  • Modifiers wie PUBLIC sind optional.
  • Das Wort „class“ ist nicht optional. Es definiert die Art des Java-Elements, daß Sie erstellen.
  • Name, der Name der Klasse, wird nach Groß-/Kleinschrift unterschieden. Die Namensgebung liegt vollständig bei Ihnen. Die Konvention besagt, daß der erste Buchstabe eines Klassennamens groß geschrieben sein muß. Klassennamen müssen innerhalb eines Pakets eindeutig sein. Der Dateiname der Quelltextdatei muß Name.class sein.
  • Geschweifte Klammern bilden den Anfang und das Ende eines Java-Codeblocks. Diese Syntax wurde von C bzw. C++ übernommen.
  • Der gesamte Java-Code, inklusive der Klassendefinitionen, ist formatfrei. Der Compiler ignoriert Zeilenumbrüche und überschüssige Leerzeichen.

Abbildung 7 zeigt die Syntax für die Definition einer Java-Methode innerhalb einer Klasse.

Schlagworte: , , , , , , , , , , , , , ,

Schreibe einen Kommentar

Sie müssen eingeloggt sein, um einen Kommentar schreiben.