(.)(.)
Objektorientierte Programmierung
in Javatm



Yoo und hallo...

hier gibts einige kleine Applets und Programme die vielleicht für Java-Anfänger ganz interessant sind. Die Quellcodes sind natürlich alle dokumentiert, wenn sie nicht gerade ganz einfach sind!
Wer diese Seiten läppisch findet darf gerne auf meine Homepage gehen - bitte mit einem dicken fetten teuren Rechner und ebensolcher Bandbreite :-). Dort gibts noch VIEL MEHR über Javatm!! Genug gelabert - es ist angerichtet:

Die Software die man braucht um zu Hause halbwegs vernünftige Bedingungen herzustellen:
Das neuste JDK(V1.2) ist noch auf keinem Mirror zu finden - also bitte direkt bei Javasoft abholen!
Das JDK1.1.7:
Das vorletzte JDK gibts überall hier...
...und die Dokumentation dazu.

Da es vorkommen kann, daß diese Seite bereits erneuert ist bevor die neue Software auf diversen FTP-Servern gespiegelt ist:
Das vorvorletzte JDK gibts überall hier...
...und die Dokumentation dazu.
(Das war kein Witz!)

Achtung!!!: Den JDK1.1.7 gibt es in drei Versionen - die erste ist Fehlerhaft und wurde nach zwei Stunden von Javasoft zurückgezogen - nichtsdestotrotz ist diese falsche Version auf den meisten Servern zu finden. Der obige Verweis liefert selbstverständlich die korrekte Version!!

Hierbei handelt es sich um die letzten Versionen der offiziellen Releases!
Ein guter (freier) Javatm-Debugger von IBM: Jikes-Debugger. (286 KB)
Auf dieser Seite gibts auch den Jikes-Compiler und viele weitere Tools - unbedingt empfehlenswert!!!
Und noch ein richtig guter ASCII-Editor: (frei konfigurierbar etc.!!!)
Programmers File Editor. Logisch das dort auch die neuste Version (574.970 Bytes) geleecht werden kann.

Um den Editor mit dem besonderen Javatm-Menü auszustatten wird eine spezielle Datei benötigt. (706 Bytes)

Wer Schwierigkeiten mit der Installation der Software hat, und gerne die drei Programme wie in einer Umgebung haben möchte, sollte sich meine Installationshilfe zur Einrichtung einer ebensolchen Umgebung reinziehen.

Im Internet findet man natürlich viel zu viel über Javatm. Als gute Anlaufstelle hat sich Kaffee & Kuchen herausgestellt. Unbedingte "must have"-Dokumentation ist noch das Javatm-Tutorial von Sun. Dieses gibts auch in Deutsch auf Papier bei Addison-Wesley, mit dem Nachteil nicht die aktuellen Informationen zum jeweiligen JDK zu haben. Das Tutorial wird ständig von SUN-Mitarbeitern gepflegt und erweitert. Darin zu finden sind auch konkrete Lösungen zu 'deprecated-API'-Problemen und tlw. schon Ankündigungen, was in den nächsten Versionen geändert wird!!! Als zweites ist Javatm in a Nutshell vom O'Reilly-Verlag zu empfehlen. Das letztere kostet auch nur 50 Geld - was heutzutage saumäßig billig ist (für so ein Buch...!). Drittes deutsches Buch ist "Java1.1 lernen" von Guido Krüger, welches vollständig im Internet bei Addison-Wesley gespiegelt ist!! Das (englischsprachige) Kultbuch schlechthin ist "Thinking in Java" von Bruce Eckel - ebenfalls als PDF oder Word-Dokument komplett im Internet.


Inhalt:

Das erste Applet
Die erste Application
Eine Taschenrechner-Application und ein Sortieralgorithmus
Mathematische Klassen, welche (noch) nicht in Javatm enthalten sind
Ein kleines Warenhaus
Kommunikation zweier Applets auf einer Homepage
Ausnahmebehandlung in Javatm
Das Grafikprogramm


Das erste Applet:

Klassischerweise - ein "Hello World"-Applet:


  1) import java.applet.*;
  2) import java.awt.*;

  3) public class ErstesApplet extends Applet {

  4)	public void paint(Graphics g) {
  5)		g.drawString("Hello World!",25,50);
  6)	}

     }

  1. Weil ein Applet geschrieben werden soll (und keine Applikation) benötigt man Teile aus der Applet-Klasse.
  2. Es soll ein String ausgegeben werden. Dazu benötigen wir die Methode drawString aus der AWT-Klasse.
  3. Hier beginnt das Programm. Es wird mit "extends" von der Applet-Klasse abgeleitet.
  4. Überschreiben (!!!) der paint-Methode aus der Applet-Klasse.
  5. Ausgabe des Strings mit drawString an den Koordianten: x=25, y=50 bezogen auf die obere linke Ecke des Applets!
  6. Schließen der Anweisungsblöcke.


Uns so sieht es aus:

 

Der Quellcode dazu.


Inhalt


Die erste Application:

Noch ein "Hello World":


  1)
  2) public class ErsteApplication {

  3)	public static void main(String[] args) {
  4)		System.out.println("Hello World!");
    	}

     }

  1. Es werden hierbei keine Importe benötigt. (siehe auch 4.)
  2. Es wird von keiner Klasse abgeleitet!
  3. Die main-Methode ist der "Einstiegspunkt". Sie muß in jeder Application vorhanden sein, damit die Laufzeitumgebung weiß wo das Programm gestartet wird. Bei obigem Applet ist das nicht notwendig, weil das Applet bereits Teil einer Application ist!!!
  4. Die Methode System.out.println() gibt auf der Console einen String aus. Sie muß nicht importiert werden, weil sie Teil der java.lang-Package ist, welche generell importiert wird.


Eine reine Application kann nicht in einem Browser ausgeführt werden.


Der Quellcode dazu.


Inhalt


Und noch ein Zwitter: Applet UND Programm. Es wird natürlich wieder "nur" das Applet angezeigt.



Und wieder der Quellcode dazu.
Inhalt Das Komplettpaket (2.769 Bytes - Klassen und Sources ETC.) als ZIP-File.


Sortieren:

Hier der voll dokumentierte Quellcode zur Sortier-Applikation. Wird nicht angezeigt, weil kein Applet!!!

Taschenrechner:

Und hier der voll dokumentierte Quellcode zu einem primitiven Taschenrechner. Wird ebenfalls nicht angezeigt, weil kein Applet!!! Um die Eingaben zu schaffen wird eine zweite Klasse (TextInput) benötigt.

Inhalt Beide Programme als ZIP. (5.398 Bytes)


Mathematische Klassen: Rational und Complex

Rational ist, wie der Name vermuten läßt, eine Klasse welche den Umgang mit Rationalen Zahlen erlaubt. Die Testklasse dazu.

Complex.java implementiert äquivalent zu Rational komplexe Zahlen. Und die Testklasse dazu.


Inhalt Und wieder das ZIP-File. (5.763 Bytes)


Eine kleine Warenhaus-Applikation:

Book.java
Disc.java
Folder.java
Product.java
Sort.java
Warehouse.java

Inhalt Das Warenhaus als ZIP. (5.967 Bytes)


Kommunikation zweier Applets auf einer Homepage:

Source

Das es sich hier nicht um echte Kommunikation handelt wird erst beim betrachten des Quellcodes deutlich. Die Applets identifizieren sich im HTML-Dokument mit unterschiedlichen NAME="xyz"-Einträgen, wodurch ein Zugriff über getAppletContext.AppletMethode erfolgen kann.

Source
Inhalt Das komplette Beispiel als ZIP. (2.774 Bytes)


Ausnahmebehandlung:

Hier gibts nich viel zu sagen - steht im Prinzip alles in jedem Java-Buch. ;-)

Zunächst die Klasse, welche die Exception erst definiert und von der (Super-)Klasse "Exception" abgeleitet ist: ZeitCheckException.java

Die Klasse ZeitCheck - hiermit wollen wir unser "Zeitobjekt" erstellen.

Und zuletzt noch eine Testklasse für obige zwei beiden: TestZeit.java. Man beachte das hier nichts mehr "gethrowed" werden muß!!! Unsere beiden Zeit-Klassen können jetzt wie eine "normale" Exception benutzt werden; als ob sie zum Java Kit dazugehören würden!

Inhalt Die Beispiel-Exception-Files als ZIP :-). (3.401 Bytes)


Das Grafikprogramm:

Die erste Alphaversion des in der Vorlesung vorgestellten Grafikprogramms. drawa.zip (11.445 Bytes - Klassen + Sources)



Inhalt



Hepp,
     CaBa


[Inhalt]     [Softwareinstallation]     [Carstens Javatm-Seite]


Last updated: 5/24/98 - 23.51 CET
Contact: SiteCEO@timbuktu.uganda

Javatm is a trademark of SUN Microsystems Inc.