www.r-krell.de |
Webangebot für Schule und Unterricht, Software, Fotovoltaik und mehr |
Willkommen/Übersicht > Informatik > Java-Seite b)
Teil b)
Die Überschriften a) sowie c) bis h) verweisen auf die vorangehende bzw. die nachfolgenden Java-Seiten:
a) Grundlegendes zu Java, benötigte Software (inkl. Downloadadressen) und Installation
c) Sortieren und Suchen in Java; GUI-Oberfläche mit der Java-AWT
d) Adressbuch- bzw. Fuhrpark-Verwaltung mit Java; Dateioperationen
e) Lineare Abstrakte Datentypen (Keller, Schlangen, Listen) und einige Anwendungen
(z.B. Tiefen- und Breitensuche im Labyrinth)
f) Abstrakter Datentyp Baum ([binärer] Sortierbaum, Rechenbaum, Spielbaum)
g) Abstrakter Datentyp Graph (Adjazenzmatrix u. -listen, typische Fragestellungen, Tiefen- u.
Breitensuche)
h) Bau eines Compilers Java -> 1_AMOR (Syntaxdiagramm, Scanner, Parser, Variablentabelle,
Codeerzeuger)
zum Seitenanfang / zum Seitenende
Im Folgenden wird davon ausgegangen, dass Sie wie in Teil a) beschrieben, eine neuere SDK und den „Java-Editor" sowie die Bibliothek „Stift&Co - Von Mäusen und Stiften" in der Fassung von G. Dick installiert haben, die mit import stiftUndCo.* in die Java-Programme eingebunden wird (die 2006 nur noch verfügbare neuere Version von B. Schriek muss hingegen mit import sum.kern.*; eingebunden werden).
zum Seitenanfang / zum Seitenende
mit dem Java-Editor
Um ein Java-Programm zu schreiben, wird einfach der „Java-Editor" gestartet und dort mit dem Menübefehl Datei | Neu oder durch Anklicken des Leere-Seiten-Symbols ein neues weißes Fenster für den Quelltext erzeugt. Dann kann der abgebildete Programmtext eingetippt werden; die Hervorhebung durch Fettschrift oder Farben erfolgt automatisch..
Versucht man das Programm aber nun mit dem grünen Pfeil zu starten, wird man enttäuscht:
Offenbar wird eine main-Methode vermisst. Tatsächlich haben wir mit der Klasse ErstesProgramm nur den Bauplan für das erste Java-Programm erstellt, noch nicht das Programm selbst. Auch die vom ersten Programm verwendeten Objekte neuesFenster und stift mussten erst erzeugt werden, bevor sie benutzt werden konnten (das Erzeugen ist hier direkt hinter der Definition in den Zeilen 5 und 6 mit dem Schlüsselwort „new" geschehen. Man könnte Definition und Erzeugen natürlich auch trennen).
Um ein Objekt vom Typ ErstesProgramm zu erzeugen, wollen wir eine neue Klasse „ErstesStart.java" schreiben, die ihrerseits ein Objekt namens meinErstesProg in ähnlicher Weise definiert und erzeugt, wie ErstesProgramm die erwähnten Objekte neuesFenster und stift. Mit anderen Worten, wir öffnen eine neue, zweite Seite und tippen dort den nachfolgend angegebenen Text ein. Nach Speichern (im gleichen Verzeichnis wie „ErstesProgramm.java"!), Compilieren und Starten öffnet sich tatsächlich das programmierte neue Fenster, auf das der Stift nach kurzer Zeit den gewünschten Text schreibt:
zum Seitenanfang / zum Seitenende
Die folgende Tabelle (durch Anklicken auch als pdf-Datei lesbar) zeigt, dass alle Java-Programme immer ähnlich gegliedert werden sollten, wie das vorstehende erste Programm. Die Trennung von Klassenbeschreibung (Rezept) und der Startdatei zur Ausführung mag etwas künstlich erscheinen, aber normalerweise bewahrt man fertige Kuchen und die Back-Rezepte auch nicht in der gleichen Schublade, sondern getrennt auf!
zum Seitenanfang / zum Seitenende
sowie: Einführung in die objektorientierte Programmierung mit Java und Stift & Co
Diese Seiten wollen und können kein Java-Kurs sein. Von denen findet man zwar auch einige im Internet; ja, sogar ganze Bücher über Java können kostenlos herunter geladen werden - einige Adressen hatte ich ja bereits auf meiner Java-Seite a) verraten.
Welche Klassen (außer den schon im obigen ersten Programm benutzten Bildschirm und BuntStift) und Methoden (außer bewegeBis und schreibe) die Bibliothek stiftUndCo bietet, kann in der im Ordner C:\JavaEntw\stiftlib\docs gespeicherten Hilfe nachgeschlagen werden (wenn Sie alles gemäß meinem Vorschlag eingerichtet haben. Aus dem Java-Editor rufen Sie Hilfe | Javabuch auf, um über meine Übersicht leicht zur Dokumentation zu kommen). Einiges zu Stift & Co steht auch im 6. Kapitel meiner Einführung (s.u.).
Über die mit der Sun-JDK bereits mitgelieferten Bibliotheken informiert C:\JavaEntw\jdk1xx\docs\index.html (dort den Link im Abschnitt „API Documentation" anklicken) bzw. C:\JavaEntw\jdk1xx\docs\api\a-names.html (dort angegebenen Links folgen) . Noch einfacher ist der Zugriff auf die JDK-Dokumentation über den Menüpunkt „JDK Help" aus dem RealJ-Hilfe-Menü (oder Druck auf [F1], sofern ein Quelltext aktiv ist) bzw. - beim Java-Editor - mit Hilfe | API bzw. ebenfalls [F1]!
Beachtenswert und hilfreich sind sicher auch die Beispiele, die in der JDK-Dokumentation enthalten sind. Von der schon erwähnten Dokumentations-Startseite C:\JavaEntw\jdk1xx\docs\index.html sind Muster-Programme im Abschnitt „Demos, Tutorial and Training" erreichbar („doc" auf dieser Seite bedeutet immer, dass die Verweise zu Dateien, die bereits auf Ihrem Rechner installiert sind, führen. „web" hingegen verweist auf Informationen aus dem Internet, die nur per online-Verbindung eingesehen werden können). Sie können natürlich auch direkt zu C:\Soft\Java\jdk1xx\docs\relnotes\demos.html gehen. Hier findet man jedenfalls mehrere fertige Java-Programme, aus denen auch typische Programmkonstrukte ablesbar sind. (Einen Hinweis zur Fehlerbehebung auf dieser Seite in der SDK 1.4.2 habe ich bereits auf meiner Java-Seite a) gegeben!)
Und schließlich kann ich doch noch einige Seiten als pdf-Dokument beisteuern, dessen Inhaltsverzeichnis hier abgebildet ist:
Einführung
in die objektorientierte Programmierung mit Java und Stift & Co
zum Ansehen (364-kB-pdf-Datei) / zum
Herunterladen (174-KB-zip-Archiv)
zum Seitenanfang / zum Seitenende
Die Ausführung eines Java-Programms wird entweder durch das Ausführen hinter- bzw. untereinander geschriebener Anweisungen und Methoden-Aufrufe bestimmt, oder durch die Kontrollstrukturen Wiederholung (mit vor- oder nachgeschalteter Kontrolle bzw. durch eine Zählschleife) oder Verzweigung (ein-, zwei- oder mehrseitig) gesteuert. Beispiele findet man in „Demos, Tutorial and Traning" in der JDK-Dokumentation (s.o.). Erklärungen gibt jeder Java-Kurs oder jedes -Lehrbuch, eine kurze Übersicht findet sich auch in Kapitel 5 meiner vorgenannten Einführung. Speziell für Beispiele unter Verwendung von stiftUndCo sei außerdem auf die in den Verweisen (unten auf dieser Seite) genannte Webseite von H. Krumwiede hingewiesen.
Ob die Grundlagen gemeistert wurden, lässt sich z.B. beim Lösen meines Übungsblatts
Java-Übungen: Kontrollstrukturen (pdf-Datei, 18 kB)
feststellen.
zum Seitenanfang / zum Seitenende
Frühzeitig sollte man sich daran gewöhnen, eine vernünftige Klasseneinteilung vorzunehmen.
Um beispielsweise das nebenstehende Hochhaus zu zeichnen, könnte auf den ersten Blick ein Stift genügen,
den man mehrfach über die Zeichenfläche führt, zwischendurch abhebt (für die Zwischenräume
zwischen den Fenstern) und wieder aufsetzt und so in irgendeiner Reihenfolge zeichnet, bis das Haus fertig ist.
Das ist möglich, vielleicht sogar schnell, gilt aber als schlechter Programmierstil.
Logischer ist es, das Haus zunächst genauer zu analysieren: Offenbar besteht das Haus aus mehreren Stockwerken, jedes Stockwerk seinerseits hat mehrere Fenster. Deshalb sollte es nahe liegen, das Haus aus Stockwerken zusammenzusetzen, wobei jede Etage über ein linkes, mittleres und rechtes Fenster verfügt. Jedes dieser Fenster könnte nach dem gleichen Bauplan gezeichnet werden. Man bräuchte also ingesamt drei Pläne: einen für alle (gleichartigen) Fenster, einen für eine (und damit alle) Etage(-n), wobei eine/jede Etage im Wesentlichen aus drei jeweils nach dem Fenster-Bauplan zu erzeugenden Fenstern besteht. Und schließlich braucht man einen Bauplan für das Haus, wobei in dem Hausumriss vier Etagen erzeugt und angeordnet werden müssen. In einer vierten Datei, der Startdatei, muss schließlich ein konkretes Objekt (hier „hochhaus") nach dem Bauplan für das Haus (der Klasse „H_Haus") auf dem Bildschirm erzeugt werden. Da das Haus ebenso wie alle seine Komponenten nur einmal gezeichnet wird und keine weiteren Aufträge erfüllen muss, kann das Zeichnen jeweils im Konstruktor für jedes Objekt vorgenommen werden. Weiter Methoden werden dann nicht benötigt.
Selbst wenn das so aus vier verschiedenen Dateien entstandene Programm insgesamt etwas länger sein sollte, als der erste rasche Zugang, wird hier guter Programmierstil mit vernünftiger Objektanalyse und überschaubaren, wieder verwendbaren Klassen geübt. Das Bild zeigt den möglichen Programmtext, der allerdings noch ordentlich kommentiert werden müsste (womit er aber nicht mehr auf einen Bildschirm gepasst hätte):
Die einzelnen Klassen sind in zufälliger Reihenfolge abgebildet. Beim Schreiben habe ich mit H_Fenster angefangen; dann habe ich mir die Größe einer Etage aus drei Fenstern überlegt und H_Etage geschrieben, danach H_Haus und zum Schluss H_Start. Sofern noch keine Reihungen verwendet werden sollen (wie jetzt in H_Haus die Reihung stockwerk), können dort - genau wie die drei Fenster in H_Etage - auch vier Stockwerke mit individuellen Namen (stock0, stock1, stock2, stock3 ?) eingeführt werden und einzeln (statt mit der for-Schleife) erzeugt werden. Das Erzeugen erfolgt in jedem Fall getrennt von der Definition, da die Koordinaten benötigt werden, die der H_Haus-Konstruktor erst erhält.
Alle zu einem Projekt gehörenden Datei- bzw. Klassennamen lasse ich übrigens gerne mit dem gleichen Prefix (wie hier „H_") anfangen: das erleichtert die Übersicht. Weitere Beispiele für eine (hoffentlich) vernünftige Objekthierarchie bzw. Klasseneinteilung finden sich oben in meiner Einführung!
zum Seitenanfang / zum Seitenende
Bereits in Javascript (siehe Informatik-Hauptseite) konnte eine Autorennen unter Verwendung der Schriftzeichen „O>o" programmiert werden. In Java kann sogar der Grafik-Bildschirm benutzt werden und das Formel-1-Rennen als Applet von Ihnen gespielt werden kann - vorausgesetzt, Sie haben Java in Ihrem Browser aktiviert. Bei mir sehen die Rennwagen noch recht primitiv aus - manche Schülerinnen und Schüler haben sich damit weit mehr Mühe gegeben. Bei vernünftiger Klasseneinteilung ist es natürlich kein Problem, auch noch nachträglich die Klasse „Formel1_Auto" gegen eine Version mit aufwändigerer Grafik auszutauschen!
Autorennen (Java-Applet mit Quelltext und HTML-Webseite)
Auf dieser Autorennen-Extraseite ist auch dargestellt, wie ein Java-Programm als Applet gestartet werden kann. Neben der nötigen Methode in der Startdatei ist auch der wesentliche Aufbau der aufrufenden Webseite dargestellt (als Quelltext im HTML-Editor phase 5).
zum Seitenanfang / zum Seitenende
Nachdem im Unterricht Reihungen ('Arrays') als strukturierte Datentypen besprochen waren, die aus mehreren gleichartigen Komponenten zusammen gesetzt sind, wurde die Simulation einer Aufzugsteuerung als Projekt durchgeführt. Alle Schülergruppen mussten jeweils den kompletten Aufzug programmieren. Wie auf der kommenden Extra-Seite noch erläutert, war das nicht einfach. Gemeinsam mussten immer wieder die Entwurfsentscheidungen überprüft und besprochen werden. Im interaktiven Applet kann man den Aufzug in verschiedene Etagen rufen und sehen, in welcher Reihenfolge er die verschiedenen Wünsche abarbeitet: drücken Sie doch mal „3", „2" und „4" und später weitere Stockwerke... Neben Hinweisen, Struktogramm und Quelltext finden Sie außerdem weitere Aufgaben
Aufzug-Simulation (Java-Applet mit Struktogramm, Quelltext u. Aufgaben)
Eine grafisch viel aufwändigeres Java-Applet für einen Fahrstuhl, programmiert von einem Schüler, sei ebenfalls gezeigt (und kann bedient werden):
Schönere Aufzug-Simulation (aber ohne Quelltext)
zum Seitenanfang / zum Seitenende
Bevor Sie einen der folgenden Verweise anklicken, sollten Sie erst meine Seite zu Ihren Favoriten hinzufügen (Microsoft Internet Explorer) oder ein Lesezeichen setzen (Netscape), damit Sie anschließend sicher hierher zurück finden! Natürlich kann ich für den Inhalt fremder Seiten keine Verantwortung übernehmen. Wenn ein Verweis nicht funktioniert, dort inzwischen andere Inhalte zu sehen sind oder wenn Sie mir weitere gute Seiten empfehlen können, bitte ich um eine kurze Nachricht!
Hinweis: die fremden Seiten werden in einem neuen Browser-Fenster geöffnet. Geschieht beim Anklicken eines Verweises scheinbar nichts, wird das neue Fenster vermutlich vom aktuellen Fenster verdeckt -- bitte per Task-Leiste ins neue Fenster wechseln!
Informatik mit Java, Teil a) | Auf meiner ersten Java-Seite befinden sich im Text Hinweise zu benötigter und sinnvoller Software einschließlich Download-Adressen, u.a. auch von Büchern zu Java! |
Informatik mit Java, Übersicht | Inhaltsverzeichnis meiner Java-Seiten (auf der Informatik-Hauptseite) |
Sun: Java Online Training | Tutorials und Links vom JDK/SDK-Anbieter Sun. |
Java-Einführung | H. Partl von einer Wiener Uni gibt eine übersichtliche, gut gegliederte Einführung in die wichtigsten Eigenschaften von Java. Zählt die Möglichkeiten von Java auf und scheint daher eher als Referenz für Leute mit gewissen Erfahrungen in einer anderen Programmiersprache gedacht - Anfänger sollten erst W. Fendts Vortrag (s.u) und einen Kurs für Schülerinnen und Schüler (z.B. vom GZG, s.u.) lesen. |
R. Grothmann: Java | R. Grothmann von der KU Eichstätt bietet das Skript seines Java-Kurses; außerdem stellt er viele Java-Programme, Links, und einen in Java programmierten Editor „JE" vor. |
An vielen weiteren Unis und Fachhochschulen erscheinen vorlesungsbegleitend Java-Kurse und/oder Übungsblätter, die leider oft nur kurze Zeit verfügbar sind. Bitte selber suchen! | |
Hermes u.a. / Gymn. Zitadelle: Java | Schul-Webseite über Java mit vielen Beispielen. Folgt dem und ergänzt das bei Klett erschienene „Arbeitsheft Informatik: Java" von A. Hermes und B. Leipholz-Schumacher, enthält inzwischen auch viel zum Einsatz von BlueJ (siehe meine Java-Seite a)) |
Homepage von W. Fendt | W. Fendt bietet viele schöne Java-Applets mit Quelltexten für Mathematik und Physik in der Schule; außerdem gibt's die Möglichkeit zum Lesen und/oder Download eines auch für Anfänger gut lesbaren (Lehrerfortbildungs-) Java-Kurses „Java-Applets programmieren" („vortrag.zip"). Leider ist die Navigation über das Bild in der Homepage schwierig, weswegen ich auch Direktzugriffe nenne. |
Fendts Computerlinks | |
Fendts Vortrag | |
H. Krumwiede: Java mit stiftUndCo | H. Krumwiede arbeitet als Lehrer auch mit der Biblitothek „stiftUndCo" und stellt hier einige Beispiele aus seinem bzw. für seinen Unterricht vor |
Gymn. Korschenbroich: Java Ecke | Eine kleine Sammlung von Applets der Informatik-AG am Gymnasium Korschenbroich |
Java am GZG | W. Seyboldt, Graf-Zeppelin-Gymnasium, Friedrichshafen: Diese sehr umfangreiche, gut gepflegte Seite hält eine Fülle von lohnenswertem Java-Material bereit - auch einen gelungenen Java-Kurs! |
Ihnen hat's gefallen? Sie wollen auch andere auf diese Seite aufmerksam machen? Mit dem Web-Tip(p) rechts oben am Anfang dieser Seite können Sie eine e-Mail mit der Adresse schicken!
zurück zur Informatik-Hauptseite