Guido Krüger - JAVA 1.1 lernen - Kapitel 3

Previous Page Previous Page TOC TOC Index Next Page Previous Page



Schnelleinstieg

Falls Sie die ersten Gehversuche in Java machen wollen, ohne erst viele Grundlagen lernen zu müssen, oder wenn Sie einfach nur daran interessiert sind, möglichst schnell Ihr erstes Java-Programm auszuführen, dann sollten Sie diesen Abschnitt lesen. Sie erfahren hier in einer kurzen Anleitung, wie Sie ein einfaches Programm erstellen und mit den Werkeugen des JDK übersetzen und ausführen. Zusätzlich gibt es einige Hinweise, um zeilenorientierte Ein- und Ausgaben durchzuführen.

Quelltext erstellen, übersetzen und ausführen

1. Vorbereitung

Installieren Sie das JDK wie in Kapitel 2 beschrieben und sorgen Sie dafür, daß in Ihrer Pfadangabe das Verzeichnis \jdk1.1.2\bin enthalten ist. Falls Sie das JDK nicht nach c:\jdk1.1.2 installiert haben, passen Sie die Pfadangaben entsprechend an.

2. Erstellen des Quelltextes

Erstellen Sie mit einem beliebigen Editor die folgende Datei hello.java:

public class Hello
{
   public static void main(String args[])
   {
      System.out.println("Hello, world");
   }
}

Diese Datei enthält die Definition der Klasse Hello. Die Klasse enthält lediglich eine einzige Methode main, die das Hauptprogramm unserer Applikation enthält.

3. Übersetzen des Quelltextes

Übersetzen Sie die Datei mit dem Kommando javac (so heißt der Java-Compiler des JDK):

javac Hello.java

4. Ausführen des erzeugten Programms

Sie haben nun eine Datei Hello.class erzeugt, die mit dem Java-Interpreter ausgeführt werden kann:

java Hello

Das Programm gibt nun die gewünschte Meldung auf dem Bildschirm aus:

Hello, world

Die Beispielprogramme

Übersetzen der Beispiele

Auf diese Weise können nun beliebige Java-Programme angelegt, übersetzt und ausgeführt werden. Die im Buch abgedruckten Beispielprogramme befinden sich auf der CD-ROM im Verzeichnis \examples. Kopieren Sie diese einschließlich der darin enthaltenen Unterverzeichnisse in ein beliebiges Verzeichnis auf Ihrer Festplatte. Benutzen Sie einen beliebigen Editor zur Eingabe oder Veränderung von .java-Dateien, übersetzen Sie die Datei mit dem Kommando javac, und starten Sie das fertige Programm mit dem Kommando java. Falls Sie ein Applet geschrieben haben, erstellen Sie zusätzlich eine passende HTML-Datei und starten dann das Programm mit dem Kommando appletviewer anstatt mit java.

Hinweis

Als Entwicklungssystem für dieses Buch wurde das JDK 1.1.2 für Windows 95 verwendet. Alle Beispiele wurden auf diesem System entwickelt und getestet. Bei Verwendung einer anderen Plattform kann es zu leichten plattformspezifischen Abweichungen kommen. Auch die Installation der Programme und die Verwendung der Tools kann sich leicht unterscheiden.

Quelltextformatierung

Es ist bekannt, daß man sich über die Formatierung von Quelltexten und die Einrückung von Deklarationen und Anweisungen streiten kann. Jeder Entwickler hat seinen eigenen Stil und kennt gute Argumente, genau diesen zu verwenden. Mittlerweile gibt es einige große Lager, denen man sich anschließen kann, oder man ist gezwungen, seinen eigenen Stil einem vorgegebenen Style-Guide anzupassen. Wir wollen uns diesen fruchtlosen Diskussionen nicht anschließen und keinesfalls behaupten, die in diesem Buch verwendete Art, Sourcecode zu formatieren, wäre die einzig richtige. Dennoch wurde versucht, die Beispielprogramme einigermaßen konsistent zu formatieren und dabei einige wenige Regeln einzuhalten.

Bei Klassen- und Methodendefinitionen stehen die geschweiften Klammern unterhalb der Deklarationsanweisung und die eigentliche Deklaration ist eingerückt:

import java.io.*;

public class Example1303
{
   public static void main(String args[])
   {
      //Hier steht der Methodenrumpf
   }
}

Bei Kontrollanweisungen innerhalb einer Methode schreiben wir die öffnende Klammer dagegen in dieselbe Zeile wie die einleitende Anweisung:

for (int i = 0; i < aNeighbours.length; ++i) {
   if (p1.x + aNeighbours[i][0] == p2.x) {
      if (p1.y + aNeighbours[i][1] == p2.y) {
         return true;
      }
   }
}

Dies gilt auch für fortgesetzte Anweisungen wie beispielsweise else oder else if:

if (cmd.equals("Größer")) {
   d.height *= 1.05;
   d.width  *= 1.05;
} else if (cmd.equals("Kleiner")) {
   d.height *= 0.95;
   d.width  *= 0.95;
} else {
   x = 10;
}

Diese Technik verwenden wir meist auch, wenn bei einem Methodenaufruf nicht alle Argumente in eine Zeile passen:

System.out.println(
   "Grüße aus Hamburg".regionMatches(
      8,
      "Greetings from Australia",
      8,
      2
   )
);

Diese einfachen Regeln lassen sich in den meisten Fällen anwenden, es gibt aber auch Fälle, in denen sie versagen. So zum Beispiel, wenn der Testausdruck einer if-Anweisung über mehrere Zeilen geht, wenn die Parameterdeklaration einer Methode nicht in eine Zeile paßt oder schlicht, wenn die Verschachtelung bereits sehr tief ist und keine weitere Einrückung zuläßt. In diesem Fall sei der Leser um Nachsicht gebeten und aufgefordert, den ästhetischen Anspruch an das Programm zugunsten pragmatischer Erwägungen zurückzustellen.

Einfache Ein-/Ausgaben

Für die ersten Schritte in einer neuen Sprache benötigt man immer auch I/O-Routinen, um einfache Ein- und Ausgaben vornehmen zu können. Glücklicherweise kann man in Java nicht nur grafikorientierte Programme schreiben, sondern auch auf die Standardein- und -ausgabe zugreifen. Damit stehen für kleine Programme einfache I/O-Routinen zur Verfügung, die wie in den meisten konventionellen Programmiersprachen verwendet werden können.

Einfache Ausgaben

Mit Hilfe des Kommandos System.out.println können einfache Ausgaben auf den Bildschirm geschrieben werden. System.out.println erwartet als einziges Argument eine Zeichenkette. Mit Hilfe des Plus-Operators können Zeichenketten und numerische Argumente verknüpft werden, so daß man neben Text auch Zahlen ausgeben kann:

public class Hello
{
   public static void main(String args[])
   {
      System.out.println("1+2=" + (1+2));
   }
}

Die Ausgabe des Programms ist:

1+2=3

Einfache Eingaben

Leider ist es etwas komplizierter, Daten zeichenweise von der Tastatur zu lesen. Zwar steht ein vordefinierter Eingabe-Stream System.in zur Verfügung. Dieser ist aber nicht in der Lage, die eingelesenen Zeichen in primitive Datentypen zu konvertieren. Statt dessen muß zunächst eine Instanz der Klasse InputStreamReader und daraus ein BufferedReader erzeugt werden. Dieser kann dann dazu verwendet werden, die Eingabe zeilenweise zu lesen und das Ergebnis in einen primitiven Typ umzuwandeln. Weitere Information zur streambasierten Ein-/Ausgabe sind in Kapitel 13 zu finden.

Beispiel

Das folgende Listing zeigt dies am Beispiel eines Programms Hello2.java, das zwei Ganzzahlen einliest, sie zusammenzählt und das Ergebnis auf dem Bildschirm ausgibt:

import java.io.*;

public class Hello2
{
   public static void main(String args[])
   throws IOException
   {
      int a, b, c;
      BufferedReader din = new BufferedReader(
                           new InputStreamReader(System.in));

      System.out.println("Bitte a eingeben: ");
      a = Integer.parseInt(din.readLine());
      System.out.println("Bitte b eingeben: ");
      b = Integer.parseInt(din.readLine());
      c = a + b;
      System.out.println("a+b="+c);
   }
}

Werden die Zahlen 10 und 20 eingegeben, so lautet die Ausgabe des Programms:

Bitte a eingeben:
10
Bitte b eingeben:
20
a+b=30


Previous Page Previous Page Page Top TOC Index Next Page Previous Page

(C) 1997 Guido Krueger, "Java 1.1 lernen", Addison-Wesley, Bonn, 1997