Die Klasse
Ein Programm besteht aus einer Reihe von Anweisungen an den Computer.
Im Gegensatz zu anderen Programmiersprachen müssen Java - Anweisungen stets innerhalb einer Klassendefinition stehen. Die Klassendefinition besteht aus dem Schlüsselwort "class" plus dem Namen der Klasse. Der Name (Bezeichner) der Klasse kann aus beliebigen Zeichen bestehen (also beispielsweise auch deutsche Umlaute), darf aber nicht mit einer Zahl oder einem Satzzeichen beginnen. Es ist heute üblich, englische Bezeichner in der für Java typischen Binnengroßschreibung (HelloWorld) zu verwenden.
Klassennamen beginnen per Konvention mit einem Grossbuchstaben. Die Klasse muss in einer Datei gespeichert werden, deren Name exakt dem Klassennamen plus der Endung ".java" entspricht. Alles, was zur Klasse gehört, wird in geschweifte Klammern eingeschlossen.
Packages
Packages dienen in Java dazu, Programme, die aus einer großen Zahl von Klassen bestehen, systematisch zu ordnen und zusammen zuhalten. Daneben vermeiden sie Namenskonflikte, denn in verschiedenen Packages kann ein und derselbe Klassenname wiederholt verwendet werden, was innerhalb eines Packages nicht möglich ist.
Physikalisch werden Packages durch Verzeichnisse im Dateisystem dargestellt. Dabei wird der Pfadtrenner Slash "/" bzw. Backslash "\" durch einen Punkt ersetzt. Wenn Sie das Programm an der Konsole ausführen, müssen Sie den Packagenamen berücksichtigen.
java path.to.things.ClassName
Das Package ist hier "path.to.things", ClassName der Klassenname. Bezeichner für Packages bestehen per Konvention aus Kleinbuchstaben.
Methoden und Felder
Innerhalb der Klasse können Methoden und Felder definiert werden. Ein Felddefinition ist beispielsweise:
String message="Hello World!";
Ein Feld (Variable) hat einen Typ (hier String, also Zeichenkette) sowie einen Bezeichner, unter dem es zur Verfügung steht (hier: "message"). Die Anweisung endet mit Semikolon. Streng genommen unterscheidet man Deklaration und Definition. Die Deklaration vereinbart das Feld mit dem Kompiler, die Definition weist ihm einen Wert zu. In diesem Fall tun wir beides in einem Schritt, wir könnten es aber auch nacheinander tun:
String message; // Deklaration
message="HelloWorld!";// Definition
Werden Felder wie hier direkt innerhalb der Klasse deklariert, sind sie global und stehen in allen Methoden der Klasse zur Verfügung.
Sie können aber auch innerhalb einer Methode definiert werden. In diesem Fall sind sie lokal und nur innerhalb der Methode sichtbar.
Methoden besitzen einen Methodenkörper (body), der durch geschweifte Klammern definiert wird. Innerhalb diese Methodenkörpers können Anweisungen notiert werden. Eine Methode hat wie ein Feld einen Typ, der angegeben werden muss. Ihr Typ ist ihr Rückgabewert, der mit dem Schlüsselwort return angeben wird. Der Rückgabewert muss bereits in der Signatur der Methode (dem, was vor der geschweiften Klammer steht) vereinbart werden. Gibt eine Methode keinen expliziten Wert zurück, muss void angegeben werden.
public static void main(String[] args)
Zu den Schlüsselwörtern public und static später mehr.
In runden Klammern können Argumente angegeben werden, das sind Werte, die der Methode übergeben werden. Dabei wird wieder Typ und Bezeichner angegeben (String[] args). Die Methode kann dann nur mit diesen Argumenten aufgerufen werden. Die Argumente stehen unter dem vereinbarten Namen innerhalb der Methode zur Verfügung.
Bezeichner für Methoden und Felder beginnen konventionsgemäß mit einem Kleinbuchstaben und verwenden die Java typische Binnengroßschreibung, also beispielsweise getMessage();, aber nicht: getmessage() (falsch) oder GetMessage() (falsch).
Kommentare
Kommentare sind ein unverzichtbares Hilfsmittel, um Software wartbar zu halten. Wer nur einmal versucht hat, seine eigenen Programme bereits nach drei Wochen zu überarbeiten oder einen Fehler zu finden, wird für jede Zeile Kommentar dankbar gewesen sein.
In Java gibt es drei Typen von Kommentare:
// Der einzeilige Kommentar gibt kurze Hinweise im Quelltext
// oder kommentiert Code aus, der nicht verwendet werden soll.
/* Der Blockkommentar gibt längere Hinweise, kann sich über viele
Zeilen erstrecken und endet ebenfalls mit: */
/**
* Der Javadoc Kommentar dient zusätzlich zur automatischen Dokumentation mit dem
* Java- Tool Javadoc.
* Javadoc Kommentare sind bei der Definition von Klassen, Methoden und Feldern
* zu verwenden.
*/
Die *-Asterix am Anfang der mittleren Zeilen im Javadoc Kommentar sind nicht erforderlich, aber üblich.