Erläuterungen zur Java-Programmierung

Document Sample
Erläuterungen zur Java-Programmierung Powered By Docstoc
					                            Allgemeine Informatik WS 2001/2002


                    1. Übung - Erläuterungen
                      „Einstieg in die Java-Programmierung“


                               Letzte Änderung am 28.10.2001




Hinweis: Die Erläuterungen zu den Übungen dienen als Begleittext für die
Nacharbeitung der Übungsaufgaben. Es wird für jeden Themenabschnitt der Übungen
eigene Erläuterungen geben. Sie haben damit die Möglichkeit, die in den Übungen
intuitiv erlernten Themen zu vertiefen und Hintergrundwissen zu erlangen. Diese
Erläuterungen erheben nicht den Anspruch auf Vollständigkeit! Zum
Themenkomplex Java gibt es zahlreiche gute Fachbücher. Wir wollen Ihnen aber mit
dieser komprimierten Erläuterung das Wälzen von Fachbüchern ersparen und das für
die erfolgreiche Teilnahme an der Veranstaltung nötige Wissen vermitteln.


Java und Applets
Wir machen den Einstieg in die Java-Programmierung über sogenannte Java-Applets.
Von diesen Java-Applets dürften die meisten schon gehört haben, es sind kleine
Programme, meist mit graphischen Ausgaben, die über eine HTML-Seite aufgerufen
werden können. Webseiten mit Java-Applets können mit Hilfe eines Java-fähigen
Browsers angezeigt werden. Standardbrowser wie Netscape und Internet Explorer
sollten das können, wobei man darauf achten muss, dass man Java eingeschaltet
(„enabled“) hat. Zur Ausführung von Java-Applets ist genauso das Programm
appletviewer geeignet, das auf den RBG-Rechnern installiert ist. Es ist Teil der
JDK, dem sogenannten Java Development Kit von Sun.
Verwechseln Sie Java-Applets nicht mit Java-Anwendungen. Wir werden diese
Begriffe in den Erläuterungen stark trennen. Java-Anwendungen sind eigenständige
Programme, welche nicht in einem Browser ausgeführt werden können. Im späteren
Verlauf der Erläuterungen werden wir von den Applets auch zu den Anwendungen
kommen.
Java-Applets und Java-Anwendungen können in einem beliebigen Texteditor unter
Unix oder Windows erstellt werden. Der folgende Programmcode ist ein einfaches
Beispiel für ein Java-Applet:

import java.applet.*;
import java.awt.*;

public class MyApplet extends Applet
{
      public void paint (Graphics g)
      {
            g.drawString(“Ein einfaches Applet”, 200, 200);
      }
}




Einstieg in die Java-Programmierung                                Seite 1 von 4
Dieses Applet implementiert eine Klasse mit dem Name MyApplet. Genauso muss
auch die Datei heißen, in der dieser Code steht. Genauer: Der Dateiname erhält den
Anhang .java, der vollständige Dateiname lautet dann also MyApplet.java
(Achten Sie auf die genaue Übereinstimmung bei der Groß- und Kleinschreibung!).
Wollen wir diesen Code ausführen, müssen wir ihn erst in eine für den Rechner
verständlichen Sprache übersetzen.


Compilieren

Dieses Übersetzen, auch Compilieren genannt, geschieht mit dem Befehl javac, also
z.B. um die Datei MyApplet.java zu compilieren, geben Sie „javac
MyApplet.java“ in einer Eingabeaufforderung ein (evtl. muß der Dateiname
zusammen mit seinem Pfad angegeben werden, falls Sie sich in einem anderen
Verzeichnis befinden). javac ist ein zum Umfang des JDK’s von Sun gehörendes
Programm, welches Java-Quellcode in den sogenannten Bytecode übersetzt (Also
Java-Applets genauso wie Java-Anwendungen). Passieren bei der Compilierung
Fehler, wird man von Javac darüber benachrichtigt, ansonsten wird eine Datei
MyApplet.class erzeugt, welche diesen Bytecode enthält. Diese class-Datei kann
nun von anderen Programmen gelesen werden, um MyApplet auszuführen.


Ausführen von Applets in einem Browser

Nach der erfolgreichen Compilierung unseres Applets möchten wir dieses ausführen.
Wie bereits zu Eingang erwähnt, kann man das mit einem Browser tun. Dazu
benötigen Sie eine geeignete HTML-Seite, welche das Applet sozusagen importiert.
Diese Seite müssen Sie dann im Browser über „Datei öffnen ...“ wie eine
gewöhnliche HTML-Seite öffnen. Der Browser interpretiert diese Seite und lädt die
.class-Datei, um Ihr Applet auszuführen.

Ein Beispiel für solch eine HTML Seite:

        <HTML>
        <HEAD>
        <TITLE>MyApplet HTML-Frame</TITLE>
        </HEAD>
        <BODY>
               <APPLET code="MyApplet.class" width=500 height=500>
        </APPLET>
        </BODY>
        </HTML>

Wichtig ist hierbei die Zeile „<APPLET code= ....>“ welche die class-Datei des
auszuführenden Applets angibt. Die HTML Datei sowie die class-Datei sollten sich
im gleichen Verzeichnis befinden, ansonsten müssen Sie den absoluten Dateinamen
in der HTML-Seite eintragen. Sie müssen den HTML-Code nicht verstehen – falls
aber Probleme bei der Ausführung ihrer Applets im Browser auftauchen, wissen Sie
nun ungefähr, wo Sie nach der Ursache suchen können.
Falls Sie den Quellcode eines Applets mehrfach ändern und diesen Compilieren,
müssen Sie die HTML-Seite im Browser aktualisieren, damit dieser die neue Class-



Einstieg in die Java-Programmierung                                 Seite 2 von 4
Datei lädt. Funktioniert das normale Aktualisieren nicht, versuchen Sie, die
Aktualisierung über das Menü des Browsers zu starten und gleichzeitig die STRG-
Taste gedrückt zu halten – das sollte klappen!


Ausführen von Applets mit dem appletviewer

Möchten Sie das Applet mit dem appletviewer ausführen, so geben Sie nach der
erfolgreichen Compilierung den Befehl „appletviewer <HTML-Dateiname>“ in
der Kommandozeile ein. Dabei steht „<HTML-Dateiname>“ für die HTML-Datei,
welche das Applet importiert – also genau diejenige, welche Sie auch im Browser
öffnen müssten, um das Applet zu starten. Achtung: Sie können ein Applet nicht mit
dem Befehl „java MyApplet“ starten – das geht nur mit normalen Java-
Anwendungen, aber dazu später.


Zurück zum Quellcode

Nun, wo wir ein erstes Gefühl dafür haben, wie wir aus der .java Datei ein
ausführbares Programm (bzw. Applet) erstellen, widmen wir uns wieder dem
Quellcode zu: Wichtig bei einem Applet ist, dass „extends Applet“ hinter dem
selbstgewählten Namen des Applets (hier: MyApplet) steht. Groß- und
Kleinschreibung sind von entscheidender Bedeutung: class ist etwas anderes als
Class oder CLASS. Die oben auftretenden Worte public, class, import,
extends, void sind nur einige der Schlüsselwörter in Java. Das sind reservierte
Wörter mit spezieller Funktion in Java-Programmen. Schlüsselworte werden in Java
grundsätzlich klein geschrieben. Zu Beginn müssen Sie noch nicht verstehen, was
welches Schlüsselwort genau bedeutet, versuchen sie aber dennoch im folgenden -
zumindest intuitiv - hinter die Bedeutungen zu kommen und zu erkennen, wann man
welches Schlüsselwort wie benutzt.

Zurück zu unserem Beispielapplet: Wir sehen dort einen eingerückten Bereich,
welcher mit „public void paint ....“ überschrieben ist. Dieser eingerückte
Bereich ist die sogenannte paint-Methode des Applets. Die paint-Methode wird
beim Start und bei jedem Neuzeichnen des Applets automatisch aufgerufen, das heißt,
der Code in der paint-Methode wird ausgeführt.

Eine Methode ist vergleichbar mit einer Funktion oder Prozedur eines Programms,
wie Sie sie vielleicht aus „normalen“ (sogenannten prozeduralen)
Programmiersprachen kennen, also eine Art Unterprogramm oder Subroutine. Zu
Methoden kommen wir aber erst später genauer. Zunächst müssen Sie nur wissen,
dass der Quellcode zwischen den beiden inneren Mengenklammern (im obigen
Beispiel) beim Aufruf der Methode ausgeführt wird. In den Übungsprogrammen
werden die Stellen (wichtige Stellen oder Bereiche, in denen Sie selbst den
Quellcode verändern sollen) durch Kommentare gekennzeichnet, achten Sie also auch
auf erläuternde Texte im Quelltext.




Einstieg in die Java-Programmierung                                  Seite 3 von 4
Kommentare: Kommentare und Zeichen hinter „//“ bis zum Ende der betreffenden
Zeile oder zwischen „/*“ und „*/“ sind Kommentare.

Erste Beispiele, was man alles machen kann:

       g.drawString(...) : Es wird ein Text an der angegebenen Stelle
        ausgegeben (wie es z.B. auch im ersten Beispiel MyApplet angewendet
        wurde)

       g.drawRect(...) : Zeichnet ein Rechteck

       g.drawLine(...) Zeichnet eine Linie ...

Die Übungsaufgaben gehen näher auf diese Beispiele ein.

Was bedeutet nun immer das g vor dem Methodennamen? Dieses g ist ein
sogennantes Objekt von einer Klasse namens Graphics, welches der Methode
paint vom Browser oder vom appletviewer übergeben wird. Es kennzeichnet das
„Ausgabegerät“, auf dem unser Applet Linien, Rechtecke und Zeichenfolgen
ausgeben kann. Dabei kommt das g aus dem Methodenkopf der Methode
paint(Graphics g), nämlich als Parameter der Methode paint. Was Objekte
und Klassen sind und wie man mit ihnen umgeht, lernen wir noch später.

Die Klasse Graphics hat ganz bestimmte Methoden, die wir aufrufen können und
dürfen. drawString ist eine davon Die Klasse Graphics ist in der Java-
Standardbibliothek definiert, welche wir hier ohne weiteres benutzen können. Wollen
wir Klassen aus der Java-Standardbibliothek benutzen, müssen wir diese am Anfang
unseres Quellcodes „importieren.Dazu benötigen wir die Zeile „import
java.awt.*;“ zu Beginn des Java-Programms.

Mit Hilfe der ersten Übungsaufgaben sollten Sie nun in der Lage sein, in den
verschiedenen gegebenen Applets Linien zu zeichnen, Text anzugeben, Rechtecke
etc. Sie müssen aber die Hintergründe noch nicht verstehen.




Einstieg in die Java-Programmierung                                  Seite 4 von 4