Grundstruktur eines Java-Programms
In Java befindet sich der gesamte Quelltext fast vollständig
innerhalb von Klassen. Ausnahmen hiervon sind nur Kommentare, package
-Angaben
und import
-Anweisungen. Als public
deklarierte Klassen müssen zudem in Dateien liegen, deren Namen
identisch mit dem Klassennamen sind. Die Klasse public class
HalloWelt
muss sich also in einer Datei mit dem Namen HalloWelt.java
befinden.
Klassennamen und somit auch Dateinamen, werden mit großem
Anfangsbuchstaben geschrieben. In einer Datei dürfen die
Deklarationen mehrerer Klassen stehen, von denen jedoch nur eine public
sein darf.
Die Klassennamen folgen den allgemeinen Vorschriften für alle
in Java gebräuchlichen Bezeichner. Sie dürfen alle
alphanumerische ASCII-Zeichen enthalten, jedoch keine Sonderzeichen
außer dem Unterstrich und müssen mit einem Buchstaben
beginnen. Die in anderen Programmiersprachen häufige Verwendung
des Unterstriches ist in Java eher unüblich und wird hier fast
nur innerhalb der in durchgängiger Großschrift
geschriebenen Bezeichner von static final
deklarierten
Variablen verwendet. Statt dessen wird für Klassenbezeichner,
Variablennamen, etc. von Oracle die CamelCase-Schreibweise
empfohlen. Näheres hierzu im Artikel zu den Code-Konventionen.
Implementiert die Klasse ein oder mehrere Interfaces, so werden
deren Bezeichner mit vorangestelltem Schlüsselwort implements
direkt nach dem Klassenbezeichner notiert.
package de.javabeginners.demo;
// hier nicht benötigt, nur zur Demonstration
// import javax.swing.ImageIcon;
/**
* Die Klasse dient zur Ausgabe von "Hallo Welt"
*/
public class HalloWelt {
public HalloWelt() {}
public static void main(String[] args){
gibAus();
}
public static void gibAus() {
System.out.println("Hallo Welt!");
}
}
Das Wort public
vor dem Schlüsselwort class
ist ein sog. Zugriffsmodifizierer,
der in diesem Zusammenhang zunächst überflüssig ist
und sogar weggelassen werden könnte. Der Körper der
Klasse, ihr 'Inhalt' befindet sich in einem sog. Block, einem durch
geschweifte Klammern ({...}
) begrenzten Abschnitt.
Blöcke stellen Bereiche dar, die u.a. die Gültigkeit von
Variablen regulieren und Quelltextabschnitte zusammenfassen und
gliedern.
Die Klasse enthält drei Methoden, den Konstruktor,
die main()-Methode
und eine Methode gibAus()
, die lediglich einen Text auf
der Konsole ausgibt.
Die Reihenfolge der Anordnung dieser
Elemente innerhalb des Klassenblockes ist irrelevant und muss
insbesondere nicht der Ausführungsreihenfolge entsprechen, da
der Compiler, ausgehend von main()
, die
Laufzeitreihenfolge selbst ermittelt. Javas Code-Konventionen
geben jedoch eine Reihenfolge vor, die im
gleichnamigen Artikel aufgezeigt werden.
Die Methode gibAus()
stellt ein Beispiel für eine,
je nach Bedarf und Zweck, frei definierte Methode dar, von der eine
beliebige Anzahl in einer Klasse enthalten sein darf. Allerdings
müssen sich Methoden immer in ihrer sog. Signatur
unterscheiden, da der Compiler die Methoden hieran dem jeweiligen
Aufruf zuordnet. Die Signatur ist der eindeutige, klein geschriebene
Methoden-Bezeichner mit der folgenden in runde Klammern gefassten,
hier leeren Parameterliste.
Die main()-Methode
ist immer die erste Methode, die in einem Programm ausgeführt
wird. Sie wird nie im Quelltext direkt aufgerufen und besitzt immer
den Methodenkopf public static void main(String[]
args)
und einen Methodenblock, der hier lediglich den Aufruf
von gibAus()
enthält.
Jedes Programm, das
natürlich aus vielen Klassen/Dateien bestehen kann, muss eine
Klasse mit einer main()
-Methode enthalten. In ihr
werden dann weitere Initialisierungen vorgenommen, weitere Methoden
aufgerufen, etc. Mehrere main()
-Methoden innerhalb
einer Klasse sind in jedem Falle unzulässig.1
Der Konstruktor
ist eine spezielle Methode, die der Objektbildung dient und in dem
der Anfangszustand des Objektes festgelegt wird. Auch der
Konstruktor ist hier nur zu Demonstrationszwecken angeführt, da
er im vorliegenden Falle leer ist und ein solcher sog. Standard-Konstruktor
bei Nicht-Existenz zur Kompilierzeit vom Compiler automatisch
erzeugt wird. Ein Konstruktor ist meist als public
deklariert und besteht darüber hinaus nur aus dem Klassennamen
und einer in runde Klammern gefassten Parameterliste. Eine Klasse
kann mehrere Konstruktoren enthalten, die sich dann jedoch in ihren
Parameterlisten unterscheiden müssen. Konstruktoren werden nie
direkt, sondern immer mit vorangestelltem Schlüsselwort new
aufgerufen.
1) Ein Eclipse-Projekt kann übrigens mehrere
Programme und somit auch mehrere Klassen mit main()
-Methoden
enthalten.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.