Advanced   Java   Services Programmaufbau Back Next Up Home

Der Klassenrahmen

Ein Javaprogramm besteht zunächst aus einer Datei mit einer Klasse, deren Name nach dem reservierten Wort class angegeben werden muß.

class Name_der_Klasse
{

}

Der Name der Klasse ist innerhalb gewisser Grenzen frei wählbar. Da Java wie C und C++ case-sensitiv ist, wird zwischen Groß- und Kleinschreibung unterschieden, also sind etwa

Name_der_Klasse   und   Name_der_KLASSE

zwei verschiedene Namen für Klassen. Unterstriche (underscore) sind zulässig, nicht jedoch Bindestriche und Sonderzeichen. Für den Anfang gilt die Regel:

eine Klasse = eine Datei

Diese sogenannte Quellcodedatei oder Sourcecodedatei muß die Endung ".java" aufweisen. Der Hauptname der Datei muß identisch mit dem Namen der Klasse sein (inklusive Groß-und Kleinschreibung). Wenn Sie sich für einen Klassennamen entschieden haben, so haben Sie damit auch indirekt den Dateinamen festgelegt (und umgekehrt). Beginnen Sie den Namen einer Klasse immer mit einem großen Buchstaben, das ist eine von allen Profis eingehaltene Konvention.

Die geschweiften Klammern { und } heißen Blockklammern und treten wie alle Klammern immer paarweise auf und stehen in diesem Fall für Beginn und Ende der Klasse. Die Frage, was eine Klasse genau ist, stellen Sie am besten einfach mal hinten an, zunächst reicht es zu wissen, daß eine Klasse mit dem reservierten Wort class beginnt, einen Namen trägt und ein Paar geschweifter Klammern besitzt.


Die main-Methode

Innerhalb der Klasse befindet sich die main-Methode. Am Anfang sollte man sich über deren Aufbau keine großen Gedanken machen und einfach akzeptieren, daß sich das Leben unserer ersten Programme innerhalb der main-Methode abspielt.

class Name_der_Klasse
{
   public static void main(String[] args)
   {


   } // end main

} // end class Name_der_Klasse

Hier tauchen drei weitere reservierte Worte auf, nämlich public, static, void, deren Bedeutung später im Zusammenhang mit Methoden und Klassen genau erklärt werden wird. main und String sind zwar keine reservierten Worte, trotzdem sind ihre Bedeutung genau festgelegt und dürfen hier nicht verändert werden. Einzig beim Namen args könnten Sie auch einen anderen Namen verwenden, aber es gibt keinen vernünftigen Grund dafür, also tun wir es auch nicht. Programmierer, die von C oder C++ herkommen, wundern sich vielleicht über die Stellung der eckigen Klammern. Hier ist in Java auch noch die folgende Variante möglich, die C-Programmierern sicher vertraut ist:

class Name_der_Klasse
{
   public static void main(String args[])
   {

   } // end main

} // end class Name_der_Klasse

Wir haben nun bereits ein ablauffähiges Programm, das aber weder Ein- noch Ausgabe hat und daher nicht sonderlich attraktiv ist. Beachten Sie, daß hier bereits alle Formen von Klammern vorkommen, die Java zu bieten hat, geschweifte, runde, und eckige. Die Bedeutung der beiden letzteren wird noch zu klären sein. Wie immer treten alle Formen von Klammern paarweise auf.
Der zweimalige Vorwärts-slash leitet einen einzeiligen Kommentar ein. Demzufolge endet der Kommentar mit dem Zeilenende. Es ist eine gute Angewohnheit, sich durch einen Kommentar klarzumachen, welche Funktion die beiden schließenden geschweiften Klammern haben.
Wir nähern uns allmählich unserem ersten Java-Programm, dem Pendant zum berühmten "Hello World" Programm in C. Wir brauchen noch einen Befehl, der eine Ausgabe auf die Konsole ermöglicht. Diese Zeile ist im folgenden ergänzt.

class UnserErstes
{
   public static void main(String args[])
   {
      System.out.println("Hello Java");
      // Ausgabe von Hello Java auf die Konsole
   } // end main

} // end class

In der ergänzten Zeile rufen wir ein Unterprogramm auf, daß die Java-Entwickler für uns geschrieben haben und übergeben ihm die Zeichenkette "Hello Java". So eine Zeichenkette nennen wir in Zukunft String. Das Unterprogramm sorgt dann für die Ausgabe dieser Zeichenkette auf die Konsole. Das Unterprogramm hat den vollständigen Namen System.out.println, dabei ist println der Namen des Unterprogramms. Statt Unterprogramm sagen wir in Zukunft Methode. Gelegentlich sprechen wir auch von Memberfunktion. Eigentlich ist dieser Name der treffendere, aber mittlerweile hat sich der Name Methode für die objektorientierte Variante von Unterprogrammen durchgesetzt. Nichtobjektorientierte Unterprogramme heißen Funktionen. Einen ersten Einstieg in Klassen und Methoden und den Unterschied zwischen Funktionen und Methoden findet man hier:
Erster Kontakt mit Klassen


Kommentare

Es gibt in Java drei Arten von Kommentaren, einen einzeiligen Kommentar und zwei leicht verschiedene mehrzeilige Kommentare.

class UnserErstes
{
   public static void main(String args[])
   {
      System.out.println("Hello Java");
      /* Die Anweisung System.out.println("Irgendein Text") gibt
      die Zeichenfolge Irgendein Text auf die Konsole aus */

   } // end main

} // end main class

Dieser Kommentar kann nicht geschachtelt werden. Daher empfiehlt es sich, vorzugsweise den einzeiligen Kommentar zu verwenden, auch wenn man zwei oder drei Zeilen Kommentar hat, also lieber

// Kommentarzeile 1
// Kommentarzeile 2
// Kommentarzeile 3

statt

/* Kommentarzeile 1
Kommentarzeile 2
Kommentarzeile 3 */

Es ist ganz normal, daß man bei der Programmentwicklung ganze Programmblöcke auskommentieren muß, weil sie fehlerhaft oder noch nicht fertig kodiert sind. Hat man dann für die kurzen Kommentare den einzeiligen Kommentar verwendet, so kann man problemlos die größeren Passagen auskommentieren.

/** Kommentarzeile 1
Kommentarzeile 2
Kommentarzeile 3 */

Dieser Kommentar wird nur im Zusammenhang mit Dokumentationen von eigenen Klassen verwendet. In diesem Kommentar kann man u.a. HTML schreiben. Das Dokumentationsutility javadoc.exe liest und interpretiert diese Art von Kommentaren und baut mit ihnen eine standardisierte Dokumentation auf.


Einrückungen

Es gibt zwei Weltanschauungen, was die Form eines Programms betrifft. Die einen schreiben

class UnserErstes {
   public static void main(String args[]) {
      System.out.println("Hello Java");
      /* Die öffnende geschweifte Klammer steht am Schluß, dadurch
         spart man eine Zeile, aber die zugehörigen Klammerpaare sind
         schwerer zuzuordnen */

   } // end main

} // end main class

und die anderen

class UnserErstes
{
   public static void main(String args[])
   {
      System.out.println("Hello Java");
      /* Die öffnende und schließende geschweifte Klammer stehen immer
         alleine in einer Zeile und in gleicher Einrücktiefe. So wird
         optisch sofort klar, welche Klammerpaare zusammengehören */

   } // end main

} // end main class

Hier wird offensichtlich die zweite Form bevorzugt; sie braucht zwar pro Klammerpaar eine Zeile mehr Platz, ist aber dafür deutlich übersichtlicher. Man erkennt sofort, welche geschweiften Klammern zusammengehören, wenn man sich an die folgenden Regeln hält.


Escape-Sequenzen

Mit System.out.println("Hello Java") können wir den Text "Hello Java" ausgeben, allerdings ohne die Anführungszeichen, da die Anführungszeichen einen Textstring begrenzen. Was ist, wenn wir die Anführungszeichen selbst ausgeben wollen? Dieses kleine Problem lösen die sogenannten ESCAPE-Sequenzen. Ein einleitender backslash "entwertet" das folgende Zeichen, so kann man etwa mit \" ein Anführungszeichen ausgeben. Hier eine kleine Liste von ESCAPE-Sequenzen, die man zur Ausgabe auf die Konsole immer mal wieder braucht.

Escape-SequenzBedeutung
\bbackspace
\nnewline
\rcarriage return
\tTabulator
\'Einfaches Anführungszeichen
\"Doppeltes Anführungszeichen
\\backslash

Editoren

Solange man keine integrierte Entwicklungsumgebung benützt, schreibt man seine Programme mit einem ASCII-Editor. Wer z.B. die Sun-Zertifizierung SCJP (Sun-Certified-Java-Programmer) machen will, dem empfiehlt Sun ausdrücklich, keine intergierte Entwicklungsumgebung zu benutzen, da das oft dazu führt, daß der von den Codegeneratoren erzeugte Code (z.B. für graphische Oberflächen) nur halbwegs verstanden wird und man daher "halbblind" an bestimmten Stellen des vorgefertigten Programms weiterbastelt. Als Editoren reichen im Grunde z.B. bei MS-Betriebssystemen schon die Einfacheditoren Notepad oder Wordpad. Diese Editoren haben aber weder Syntaxhighlighting noch Formatierungshilfen. Es gibt aber günstige Editoren, die diese Features besitzen und aus denen heraus man Javaprogramme auch compilieren und starten kann und die damit eine "halb" integrierte Entwicklungsumgebung darstellen. Einer dieser Editoren ist TextPad.


Übungen

Einfache Ausgaben auf die Konsole

Ausgaben auf die Konsole mit Escape-Sequenzen

Valid XHTML 1.0 Strict top Back Next Up Home