| 3.1: Mein erstes Programm | |
| Berechnung.java | Gibt die Summe zweier Zahlen auf dem Bildschirm aus. |
| 4.1.10: Übungsaufgaben | |
| Berechnung.java | Fehlerhafte Berechnungs-Klasse aus den Übungsaufgaben. |
| 4.2.2: Ausgaben auf der Konsole | |
| HalloWelt.java | Das wohl berühmteste Einsteiger-Programm der Programmiergeschichte. |
| 4.2.4: Schöner Programmieren in Java | |
| Unsorted.java | Dieses Programm ist ein Beispiel dafür, wie das Einhalten weniger Formatierungsregeln die Lesbarkeit von Code steigert. |
| Version A | Nicht formatierte Version. |
| Version B | Gemäss der Richtlinien überarbeitete Version. |
| 4.2.6: Übungsaufgaben | |
| Strukturuebung.java | Übungsaufgabe zu den Coding-Richtlinien |
| 4.3.1: Ganzzahlige Datentypen | |
| Longtst.java | |
| 4.3.2: Gleitkommatypen | |
| Floatdiv.java | Division bei Gleitkommazahlen |
| Intdiv.java | Division bei ganzen Zahlen |
| Version A | Division ohne Rest |
| Version B | Division mit Rest |
| 4.4.1: Variablen | |
| StundenRechner1.java | Stundenlohn-Berechnung ohne Variablen |
| StundenRechner2.java | Stundenlohn-Berechnung unter Verwendung von Variablen |
| 4.4.4: Ein- und Ausgabe | |
| IOToolsTest.java | Beispielprogramm für die Eingabe über Tastatur |
| 4.4.4.1: Statischer Import der IOTools-Methoden in Java 5.0 | |
| IOToolsTestMitStaticImport.java | Beispielprogramm für die Eingabe über Tastatur (mit statischem Import der Methoden) |
| 4.4.6: Übungsaufgaben | |
| Plus.java | Übungsaufgabe zur Verwendung von Operatoren |
| Raviolita.java | Programm mit Lücken |
| 4.5.7: Übungsaufgaben | |
| Falsch.java | Übungsaufgabe |
| Quersumme.java | Übungsaufgabe |
| 5.2: Teilbarkeit zum ersten | |
| Teilbarkeit1.java | Teile eine dreistellige Zahl in ihre Ziffern auf. Das Programm verwendet hierzu drei if-Abfragen. |
| 5.3: Teilbarkeit zum zweiten | |
| Teilbarkeit2.java | Teile eine dreistellige Zahl in ihre Ziffern auf. Das Programm verwendet hierzu eine for-Schleife. Es funktioniert somit auch mit mehr als drei Ziffern. |
| 5.4: Dreierlei | |
| ThreeGuys.java | Das Fußballproblem. |
| 6.1: Felder | |
| UmstaendlicherKalender.java | Dieses Programm zeigt, wie ein Terminkalender ohne Verwendung von Feldern nur schwer programmiert werden kann. |
| 6.1.3: Felder unbekannter Länge | |
| Swap.java | Vertauscht ein Feld von Zahlen. |
| 6.1.4: Referenzen | |
| Doppel.java | Das Programm verdoppelt eine einzelne Zahl. |
| DoppelFeld.java | Das Programm verdoppelt ein Feld von Zahlen. |
| 6.1.5: Ein besserer Terminkalender | |
| BessererKalender.java | Kalenderprogramm unter Verwendung von Arrays. |
| 6.1.6: Mehrdimensionale Felder | |
| MonatsKalender.java | Das Kalenderprogramm, gültig für einen ganzen Monat. |
| 6.1.9: Vereinfachte for-Schleifen-Notation in Java 5.0 | |
| MehrSchleifen.java | Traditionelle und neue, vereinfachte Schleifen-Notation mehrdimensional |
| Schleifen.java | Traditionelle und neue, vereinfachte Schleifen-Notation eindimensional |
| 6.2.4: Ein erstes Adressbuch | |
| AdressBuch_v1.java | Eine einfache Adressverwaltung. Funktioniert nur mit einer Adresse. |
| 6.2.5: Klassen als Referenzdatentyp | |
| AdressBuch_v2.java | Eine einfache Adressverwaltung für zwei Adressen. |
| 6.2.6: Felder von Klassen | |
| AdressBuch_v3.java | Eine einfache Adressverwaltung für zwanzig Adressen. |
| 6.2.8: Auslagern von Klassen | |
| Adresse.java | Die Adresse, in eine eigene Java-Datei ausgelagert. |
| 6.2.10: Übungsaufgaben | |
| Komponente.java | Übungsaufgabe |
| Referenzen.java | Übungsaufgabe |
| 7.1: Methoden | |
| Eval1.java | Das Programm führt eine simple Berechnung aus (Potenz). |
| Eval2.java | Das Programm führt dieselbe Berechnung wie Eval1 aus, jedoch mehr als einmal. Der Code bläht sich entsprechend auf. |
| 7.1.4: Aufruf von Methoden | |
| AufrufTest.java | Was passiert, wenn wir den Inhalt von übergebenen Parametern in der Methode abändern? |
| 7.1.6: Vorsicht Falle! | |
| Argumente.java | Summationsmethode mit variabler Argumentliste |
| 7.1.7: Sichtbarkeit und Verdecken von Variablen | |
| AufrufTest2.java | Vorsicht Falle: Übergabe von Arrays an Methoden. |
| AufrufTest3.java | Explizites Kopieren von Feldinhalten. |
| 7.1.8: Zusammenfassung | |
| VerdeckenTest.java | Verdecken von Variablen beim Methodenaufruf. |
| BooleanMethods.java | Übungsaufgabe |
| 7.2.1: Motivation | |
| Unendlichkeit.java | Was passiert, wenn Methoden sich selbst aufrufen? |
| 7.2.2: Das Achtdamenproblem | |
| Achtdamen.java | Das Programm löst die Aufgabe, acht Damen so auf dem Feld zu plazieren, dass sie sich nicht gegenseitig schlagen können. |
| 7.3.1: Kommandozeilenparameter | |
| GrussWort.java | Das Programm liest Kommandozeilenparameter aus und verwertet sie in einem Gruss. |
| 7.3.4: Übungsaufgaben | |
| Signatur.java | Übungsaufgabe |
| 7.4.1: Klassenmethoden | |
| MeineMethoden.java | Klasse, die Methoden bereitstellt |
| TesteMethoden.java | Klasse, die die Methoden der Klasse verwendet |
| 7.4.3: Statischer Import in Java 5.0 | |
| StatischeImports.java | Klasse, die statisch importierte Math-Methoden benutzt |
| 7.5.1: Instanzmethoden | |
| Multiplizierer.java | Klasse mit Instanzvariable und Instanzmethode |
| TesteMultiplizierer.java | Klasse, die Instanzmethoden von verschiedenen Objekten einsetzt |
| 7.5.2: Die Methoden der Klasse java.lang.String | |
| StringTest.java | Einige Beispiele für den Umgang mit Strings. |
| 7.6: Übungsaufgaben | |
| Tausche.java | Übungsaufgabe |
| 8.1: Mastermind zum ersten | |
| Mastermind.java | Eine Realisierung des Mastermind-Spiels. |
| 8.2: Mastermind zum zweiten | |
| Masterguess.java | Dieses Programm kann im Mastermind-Spiel die Zahl in weniger als 10 Zügen erraten. |
| 8.3: Black Jack | |
| Blackjack.java | Das altbekannte 17 und 4. |
| 9.3.1: Generalisierung | |
| FaxAdresse.java | Erweiterung des Adress-Objektes. |
| 10.1: Vom Referenzdatentyp zur Objektorientierung | |
| Student.java | Studenten-Klasse, erster Versuch. |
| 10.2.1: Zugriffsrechte | |
| Student.java | Aus Gründen der Kapselung wurden die Instanzvariablen auf private gesetzt. |
| 10.2.2: Was sind Instanzmethoden? | |
| Student.java | Der Zugriff auf private Bestandteile der Klasse wird durch Methoden gekapselt. |
| 10.2.3: Instanzmethoden zur Validierung von Eingaben | |
| Student.java | Die Matrikelnummer kann auf Gültigkeit geprüft werden. |
| 10.2.4: Instanzmethoden als erweiterte Funktionalität | |
| Student.java | Die Klasse besitzt jetzt eine toString-Methode. |
| 10.3.1: Klassenvariablen und -methoden | |
| Student.java | Neuer Bestandteil: ein Instanzzähler. |
| 10.3.2: Konstanten | |
| Student.java | Konstanten definieren die Studienfächer. |
| 10.4.1: Konstruktoren | |
| Student.java | Neu: ein selbstdefinierter argumentloser Konstruktor. |
| 10.4.2: Überladen von Konstruktoren | |
| Student.java | Die Studenten-Klasse, diesmal mit zwei Konstruktoren. |
| Version A | Beide Konstruktoren sind unabhängig voneinander definiert. |
| Version B | Ein Konstruktor setzt mit Hilfe des Schlüsselwortes this auf dem anderen auf. |
| 10.4.3: Der statische Initialisierer | |
| Student.java | Das Phantom der Uni - erzeugt durch einen statischen Initialisierer. |
| 10.4.4: Der Mechanismus der Objekterzeugung | |
| Student.java | Die Klasse Student |
| Sub.java | Subklasse für den Test der Aufrufreihenfolge beim Erzeugen von Objekten. |
| Super.java | Superklasse für den Test der Aufrufreihenfolge beim Erzeugen von Objekten. |
| 11.1.3: Ein erster Ansatz | |
| USDollar.java | Eine erste, konkrete Währung. |
| Waehrung.java | Diese Klasse stellt allgemein Geldwerte dar. |
| 11.1.4: Eine Klasse für sich | |
| Yen.java | Die japanische Währung. |
| 11.1.6: Übungsaufgaben | |
| Euro.java | Die europäische Währung. |
| 11.2: Die super-Referenz | |
| NonsensDollar.java | Klasse mit einer völlig unsinnig überschriebenen Methode ;-) |
| 11.3: Überschreiben von Methoden und Variablen | |
| Sohn.java | Test: Überschreiben von Variablen und Methoden. |
| Vater.java | Test: Überschreiben von Variablen und Methoden. |
| 11.6: Abstrakte Klassen und Interfaces | |
| Goldbarren.java | Ein simpler Wertgegenstand. |
| Kruegerrand.java | Eine Klasse, die sowohl Waehrung als auch Wertgegenstand ist. |
| Waehrung.java | Die Klasse Waehrung, erweitert um einige Methoden. |
| Wertgegenstand.java | Dieses Interface repräsentiert einen Wertgegenstand. |
| 11.7: Übungsaufgaben | |
| KreisPlot.java | Übungsaufgabe: Zeichnen von Kreisen. |
| 11.8.3: Innere Klassen | |
| Aufzaehlung.java | Mit Hilfe einer Folge wird durch eine Ansammlung von Objekten iteriert. |
| Version A | Klasse vor der Definition der Aufzahlungsklasse. |
| Version B | Klasse mit Folge als innere Klasse. |
| Folge.java | Interface fuer die Festlegung der Methoden zur Abarbeitung der Elemente |
| 11.8.4: Anonyme Klassen | |
| Aufzaehlung.java | Hier wurde die Folge in einer anonymen Klasse erzeugt. |
| 12.1: Streng geheim | |
| CodingDemo.java | Einfaches Verschlüsselungsprogramm, welches Encoder-Objekte verwendet. |
| Encoder.java | Die Schnittstelle des Verschlüsselungsmechanismus. |
| Inflater.java | Verschlüsseln durch Aufblähen. |
| XorEncoder.java | XOR-Verschlüsselung. |
| 12.2: Mastermind zum dritten | |
| MasterGame.java | Eine grafische Oberfläche für das Mastermind-Spiel. |
| 12.3: Game of Life | |
| Life.java | Hauptprogramm: Game of Life. |
| Petrischale.java | Der Zustand der Zellkultur zu einem bestimmten Zeitpunkt. |
| Zelle.java | Eine einzelne Zelle im Zellverbund. |
| 13: Exceptions und Errors | |
| Excep1.java | Ein sehr einfaches Programm, welches aber bereits eine Exception produzieren kann. |
| 13.1.3: Abfangen von Exceptions | |
| Excep2.java | Die bei Division durch 0 auftrende Exception wird abgefangen. |
| 13.1.4: Ein Anwendungsbeispiel | |
| Mittelwert.java | Das Programm liest Zahlen aus einer Datei ein und berechnet den Mittelwert. |
| 13.1.6: Übungsaufgaben | |
| Exueb1.java | |
| Exueb2.java | |
| Exueb3.java | |
| Exueb4.java | |
| Exueb5.java | |
| Exueb6.java | |
| Exueb7.java | |
| 13.2.1: Definieren eigener Exceptions | |
| InputException.java | Ausnahme fuer Kommunikationsprobleme mit der Tastatur |
| KeyTools.java | Diese kleine Klasse macht den IOTools Konkurrenz ;-) |
| 13.2.3: Vererbung und Exceptions | |
| PingException.java | Die Ping-Exception |
| PingPong.java | Ein Programm, welches Exceptions auslöst. |
| Version A | Jede Exception wird in einem eigenen try-catch-Block behandelt. |
| Version B | Nur ein try-catch-Block für alle drei Exceptions. |
| PingPongException.java | Die PingPong-Exception |
| PongException.java | Die Pong-Exception |
| 13.2.4: Vorsicht, Falle! | |
| PingPong.java | Ein Programm, welches Exceptions auslöst. |
| Version A | Die PingPongException wird vor der PongException gefangen. |
| Version B | Die PongException wird vor der PingPongException gefangen. |
| 13.2.5: Der finally-Block | |
| PingPong.java | Ein Programm, welches Exceptions auslöst. |
| Version A | Alle Exceptions ausser der PongException werden weitergeleitet. |
| Version B | Das Betreten und verlassen des "kritischen Bereichs" wird durch Ausgaben auf die Konsole gekennzeichnet. |
| Version C | Die Meldung des "Verlassens" wandert in den try-Block. |
| Version D | Die Meldung des "Verlassens" wird dupliziert: sie steht sowohl im catch-Block als auch nach der try-catch-Anweisung |
| Version E | Die wahrhaft elegante Lösung: die Ausgabe erscheint im finally-Block. |
| 13.2.8: Übungsaufgaben | |
| Exueb8.java | |
| 13.3.1: Zusicherungen im Programmcode | |
| AssertionTest.java | Methode kehrwert mit einer Zusicherung |
| 14.1.1: Deklaration eines Aufzählungstyps | |
| Jahreszeit.java | Die vier Jahreszeiten als enum-Typ |
| 14.1.2: Instanzmethoden der enum-Objekte | |
| Aufzaehlungen.java | Verwendung des Jahreszeiten-enum-Typs |
| 14.1.3: Selbstdefinierte Instanzmethoden für enum-Objekte | |
| Enumerations.java | Verwendung des Noten-Typs |
| Noten.java | Die Noten auf der Klavier-Tastatur |
| 14.1.4: Übungsaufgaben | |
| EsWarEinmal.java | Das Maerchen-Programm zu Aufgabe 14.3 |
| StudentenTest.java | Test-Klasse für Aufgabe 14.1 |
| StudentenTest2.java | Test-Klasse für Aufgabe 14.2 |
| 14.2.1: Generizität in alten Java-Versionen | |
| Ohrring.java | Simple Klasse fuer Ohrring-Objekte |
| Paar.java | Klasse für Paare vom Typ Object |
| PaarTest1.java | Testprogramm 1 fuer die Paar-Klasse |
| PaarTest2.java | Testprogramm 2 fuer die Paar-Klasse |
| Socke.java | Simple Klasse fuer Socken-Objekte |
| 14.2.2: Generizität in Java 5.0 | |
| GenPaar.java | Generische Paar-Klasse |
| GenPaarTest1.java | Tesprogramm 1 für die generische Paar-Klasse |
| GenPaarTest2.java | Tesprogramm 2 für die generische Paar-Klasse |
| 14.2.3: Einschränkungen der Typ-Parameter | |
| Hemd.java | Simple Klasse für Hemden-Objekte |
| Hose.java | Simple Klasse für Hosen-Objekte |
| Kleidung.java | Simple Klasse für Kleidungs-Objekte |
| TollesPaar.java | Generische Paar-Klasse mit eingeschraenktem Typ-Parameter |
| TollesPaarTest.java | Testprogramm für die Klasse TollesPaar |
| 14.2.4: Wildcards | |
| TollesPaarTestWild1.java | Testprogramm ohne Wildcards fuer die Klasse TollesPaar |
| TollesPaarTestWild2.java | Testprogramm mit Wildcards fuer die Klasse TollesPaar |
| 14.2.5: Bounded Wildcards | |
| GenPaarTestWild1.java | Testprogramm 1 für die GenPaar-Klasse mit Bounded Wildcard |
| GenPaarTestWild2.java | Testprogramm 2 für die GenPaar-Klasse mit Bounded Wildcard |
| GenPaarTestWild3.java | Testprogramm 3 für die GenPaar-Klasse mit Bounded Wildcard |
| Jeans.java | Simple Klasse fuer Jeans-Objekte |
| 14.2.6: Generische Methoden | |
| GenPaarTest3.java | Testprogramm mit generischen Methoden |
| GenPaarTest5.java | Testprogramm mit generischen Methoden und eingeschränkten Typ-Parametern |
| 14.2.8: Übungsaufgaben | |
| Konzert.java | Programm zu Aufgabe 14.7 |
| RateMal.java | Programm zu Aufgabe 14.6 |
| TierKaefig.java | Programm zu Aufgabe 14.4 |
| Tierleben.java | Programm zu Aufgabe 14.5 |
| 15.1: Collections | |
| Namensliste.java | Liest eine beliebige Menge von Namen von der Tastatur und gibt sie verkehrt herum wieder aus. |
| 15.2: Sortieren von Feldern | |
| Ring.java | Eine nach Größe sortierbare Ringklasse. |
| RingDemo.java | Erzeugt zehn zufaellige Ringe und sortiert sie. |
| 15.3: Grafische Oberflächen in Java | |
| MeinDrittesFenster.java | Erzeuge ein einfaches Fenster auf dem Bildschirm, das einen Button und einen Label besitzt. |
| MeinErstesFenster.java | Erzeuge ein einfaches Fenster auf dem Bildschirm |
| MeinZweitesFenster.java | Erzeuge ein einfaches Fenster auf dem Bildschirm, das einen Button besitzt. |
Time of creation: Wed Feb 08 20:45:09 CET 2006