Beispielprogramme
Grundkurs Programmieren in Java (8. Auflage, 2018)

Download aller Beispielprogramme

Hier finden Sie alle Beispielprogramme aus dem Buch. Suchen Sie einfach anhand des Inhaltsverzeichnisses die Stelle, an der sich das Programm im Buch befindet, und navigieren Sie über den Link in den entsprechenden Teil des Dokuments.

Inhaltsverzeichnis

Quellcodes

2.1 Mein erstes Programm
Berechnung.java Gibt die Summe zweier Zahlen auf dem Bildschirm aus
2.2 Formeln, Ausdrücke und Anweisungen
Aufgabe 2.2  
    Uebung.java Klasse Uebung
3.1.10 Übungsaufgaben
Aufgabe 3.3  
    Berechnung.java Klasse Berechnung
3.2.2 Ausgaben auf der Konsole
HalloWelt.java Das wohl berühmteste Einsteiger-Programm der Programmiergeschichte
3.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 1 Nicht formatierte Version
    Version 2 Gemäss der Richtlinien überarbeitete Version
3.2.6 Übungsaufgaben
Aufgabe 3.5  
    Strukturuebung.java Klasse Strukturuebung
3.3.1 Ganzzahlige Datentypen
Longtst.java Unzulässiger Versuch für eine Longzahl-Ausgabe
3.3.1.1 Literalkonstanten in anderen Zahlensystemen
BinaereLiterale.java Diese Klasse arbeitet mit Litealkonstanten zu verschiedenen Basen
3.3.1.2 Unterstrich als Trennzeichen in Literalkonstanten
Unterstrich.java Demonstration zur richtigen Verwendung von Unterstrichen in numerischen Literalen
UnterstrichFalsch.java Demonstration zur falschen Verwendung von Unterstrichen in numerischen Literalen
3.3.2 Gleitkommatypen
Floatdiv.java Division bei Gleitkommazahlen
Intdiv.java Division bei ganzen Zahlen
    Version 1 Division ohne Rest
    Version 2 Division mit Rest
3.4.1 Variablen
StundenRechner.java Berechnung des Arbeitslohns
    Version 1 Ohne Verwendung von Variablen
    Version 2 Mit Verwendung von Variablen
3.4.4 Ein- und Ausgabe
IOToolsTest.java Beispielprogramm für die Eingabe über Tastatur
3.4.4.1 Statischer Import der IOTools-Methoden
IOToolsTestMitStaticImport.java Beispielprogramm für die Eingabe über Tastatur (mit statischem Import der Methoden)
3.4.6 Übungsaufgaben
Aufgabe 3.11  
    Plus.java Klasse Plus
Aufgabe 3.14  
    Raviolita.java Klasse Raviolita
3.5.3.2 Die switch-Anweisung
StringSwitchDemo.java Diese Klasse demonstriert den Einsatz von Strings in der switch-Anweisung
3.5.7 Übungsaufgaben
Aufgabe 3.18  
    BreakAndContinue.java Klasse BreakAndContinue
Aufgabe 3.22  
    Falsch.java Klasse Falsch
Aufgabe 3.23  
    Irgendwas.java Klasse Irgendwas
4.1 Felder
UmstaendlicherKalender.java Dieses Programm zeigt, wie ein Terminkalender ohne Verwendung von Feldern nur schwer programmiert werden kann
4.1.3 FelderunbekannterLänge
Swap.java Vertauscht ein Feld von Zahlen
4.1.4 Referenzen
Doppel.java Das Programm verdoppelt eine einzelne Zahl
DoppelFeld.java Das Programm verdoppelt ein Feld von Zahlen
4.1.5 Ein besserer Terminkalender
BessererKalender.java Kalenderprogramm unter Verwendung von Arrays
4.1.6 Mehrdimensionale Felder
MonatsKalender.java Das Kalenderprogramm, gültig für einen ganzen Monat
4.1.9 Vereinfachte for-Schleifen-Notation
MehrSchleifen.java Traditionelle und neue, vereinfachte Schleifen-Notation mehrdimensional
Schleifen.java Traditionelle und neue, vereinfachte Schleifen-Notation eindimensional
4.2.1 Willkommen in der ersten Klasse!
Adresse.java Eine einfache Klasse zum Speichern einer Adresse
4.2.3 Ein erstes Adressbuch
AdressBuch_v1.java Eine einfache Adressverwaltung für nur eine Adresse
4.2.4 Klassen als Referenzdatentyp
AdressBuch_v2.java Eine einfache Adressverwaltung für zwei Adressen
4.2.5 Felder von Klassen
AdressBuch_v3.java Eine einfache Adressverwaltung für zwanzig Adressen
4.2.8 Übungsaufgaben
Aufgabe 4.6  
    Adresse.java Klasse Adresse
Aufgabe 4.7  
    Komponente.java Klasse Komponente
    Referenzen.java Klasse Referenzen
5 Methoden, Unterprogramme
Eval.java Beispielprogramm zur Berechnung einer einfachen Formel
    Version 1 Anfangs ist das Programm noch recht übersichtlich
    Version 2 Bei mehreren Berechnungsläufen wird es aber schnell unübersichtlich
5.1.4 Aufruf von Methoden
AufrufTest.java Was passiert, wenn wir den Inhalt von übergebenen Parametern in der Methode abändern?
5.1.6 Variable Argumentanzahl bei Methoden
Argumente.java Summationsmethode mit variabler Argumentliste
5.1.7 Vorsicht, Falle: Referenzen als Parameter
AufrufTest2.java Vorsicht Falle: Übergabe von Arrays an Methoden
AufrufTest3.java Explizites Kopieren von Feldinhalten
5.1.8 Sichtbarkeit und Verdecken von Variablen
VerdeckenTest.java Verdecken von Variablen beim Methodenaufruf
5.1.10 Übungsaufgaben
Aufgabe 5.3  
    BooleanMethods Klasse BooleanMethods
5.2.1 Motivation
Unendlichkeit.java Was passiert, wenn Methoden sich selbst aufrufen?
5.2.2 Gute und schlechte Beispiele für rekursive Methoden
IndirekteRekursion.java Beispiel für Endlosrekursion
5.3.1 Kommandozeilenparameter
GrussWort.java Das Programm liest Kommandozeilenparameter aus und verwertet sie in einem Gruss
5.3.4 Übungsaufgaben
Aufgabe 5.6  
    Signatur.java Klasse Signatur
5.4.1 Klassenmethoden
MeineMethoden.java Klasse, die Methoden bereitstellt
TesteMethoden.java Klasse, die die Methoden der Klasse verwendet
5.4.3 Statischer Import
StatischeImports.java Klasse, die statisch importierte Math-Methoden benutzt
5.5.1 Instanzmethoden
Multiplizierer.java Klasse mit Instanzvariable und Instanzmethode
TesteMultiplizierer.java Klasse, die Instanzmethoden von verschiedenen Objekten einsetzt
5.5.2 Die Methoden der Klasse java.lang.String
StringTest.java Einige Beispiele für den Umgang mit Strings
5.6 Übungsaufgaben
Aufgabe 5.9  
    Tausche.java Klasse Tausche
6.3.2 Vererbung
FaxAdresse.java Erweiterung des Adress-Objektes
7.1 Vom Referenzdatentyp zur Objektorientierung
Student.java Studenten-Klasse, erster Versuch
7.2.1 Zugriffsrechte
Student.java Aus Gründen der Kapselung wurden die Instanzvariablen auf private gesetzt
7.2.2 Was sind Instanzmethoden?
Student.java Der Zugriff auf private Bestandteile der Klasse wird durch Methoden gekapselt
7.2.3 Instanzmethoden zur Validierung von Eingaben
Student.java Die Matrikelnummer kann auf Gültigkeit geprüft werden
7.2.4 Instanzmethoden als erweiterte Funktionalität
Student.java Die Klasse besitzt jetzt eine toString-Methode
7.3.1 Klassenvariablen und -methoden
Student.java Neuer Bestandteil: ein Instanzzähler
7.3.2 Klassenkonstanten
Student.java Konstanten definieren die Studienfächer
7.4.1 Konstruktoren
Student.java Neu: ein selbstdefinierter argumentloser Konstruktor
7.4.2 Überladen von Konstruktoren
Student.java Die Studenten-Klasse, diesmal mit zwei Konstruktoren
    Version 1 Beide Konstruktoren sind unabhängig voneinander definiert
    Version 2 Ein Konstruktor setzt mit Hilfe des Schlüsselwortes this auf dem anderen auf
7.4.3 Der statische Initialisierer
Student.java Das Phantom der Uni - erzeugt durch einen statischen Initialisierer
7.4.4 Der Mechanismus der Objekterzeugung
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
7.6 Übungsaufgaben
Aufgabe 7.3  
    KarlsruherStudent.java Klasse KarlsruherStudent
Aufgabe 7.4  
    Klang.java Klasse Klang
    Krach.java Klasse Krach
    Musik.java Klasse Musik
Aufgabe 7.5  
    Fuchs.java Klasse Fuchs
    Hund.java Klasse Hund
    Katze.java Klasse Katze
    Maus.java Klasse Maus
    Ratte.java Klasse Ratte
Aufgabe 7.6  
    TestZwei.java Klasse TestZwei
Aufgabe 7.7  
    Fehler1.java Klasse Fehler1
    Fehler2.java Klasse Fehler2
    Fehler3.java Klasse Fehler3
    Fehler4.java Klasse Fehler4
    Fehler5.java Klasse Fehler5
    Fehler6.java Klasse Fehler6
Aufgabe 7.8  
    TennisSpieler.java Klasse TennisSpieler
Aufgabe 7.10  
    TestStrecke.java Klasse TestStrecke
Aufgabe 7.11  
    AchJa.java Klasse AchJa
Aufgabe 7.12  
    Patient.java Klasse Patient
Aufgabe 7.13  
    Reifen.java Klasse Reifen
Aufgabe 7.15  
    IntKlasse.java Klasse IntKlasse
    KlassenTest.java Klasse KlassenTest
    RefIntKlasse.java Klasse RefIntKlasse
Aufgabe 7.16  
    Glasboden.java Klasse Glasboden
8.1.3 Ein erster Ansatz
USDollar.java Eine erste, konkrete Währung
Waehrung.java Diese Klasse stellt allgemein Geldwerte dar
8.1.4 Eine Klasse für sich
Yen.java Die japanische Währung
8.1.6 Vererbung verhindern durch final
Kid.java Test: Vererbung Verhindern durch final
NoKidsPlease.java Klasse zur Demonstration des Schutzes vor Vererbung
8.1.7 Übungsaufgaben
Aufgabe 8.1  
    Euro.java Klasse Euro
8.2 Die super-Referenz
NonsensDollar.java Klasse mit einer völlig unsinnig überschriebenen Methode ;-)
8.3.1 Dynamisches Binden
Sohn.java Test: Dynamisches Binden
Vater.java Test: Dynamisches Binden
8.3.2 Überschreiben von Methoden verhindern durch final
Kind.java Test: Überschreiben von Methoden
Papa.java Test: Überschreiben von Methoden
8.6.1 Einsatzszenarien am Beispiel
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 Interface für einen Wertgegenstand
8.6.2 Abstrakte Klassen im Detail
Figur.java Abstrakte Klasse für Figur-Objekte
FigurBearbeitung.java Demo-Klasse zum Einsatz von Figur-Objekten
FigurenMain.java Anwendungsprogramm für Figur-Objekte
Kreis.java Kreis als konkrete Tochter-Klasse von Figur
RechtEckchen.java RechtEckchen als konkrete Tochter-Klasse von Figur
8.6.3 Interfaces im Detail
Bewegen.java Anwendungsprogramm für bewegliche Objekte
Beweglich.java Interface für bewegliche Objekte
Klappbar.java Interface für klappbare Objekte
Kreis.java Kreis als konkrete Tochter-Klasse von Figur für bewegliche Kreise
Stuhl.java Stuhl als Implementierung der beiden Interfaces
    Version 1 Klasse für bewegliche Stühle
    Version 2 Klasse für bewegliche und klappbare Stühle
8.7.1 Deklaration von Default-Methoden
Formel.java Interface zur Berechnung einer einfachen Formel
    Version A Eine Methode ohne Implementierung
    Version B Zwei Methoden, eine davon mit Default-Implementierung
FormelEins.java Klasse, die das Formel-Interface implementiert
FormelEinsRennen.java Anwendungsprogramm zum Testen des Interface Formel
    Version A Anwendungsprogramm, das mit Version A des Interface Formel arbeitet
    Version B Anwendungsprogramm, das mit Version B des Interface Formel arbeitet
8.7.2 Deklaration von statischen Methoden
Formel.java Interface zur Berechnung einer einfachen Formel
    Version C Erweitertes Interface Formel (Variante C) mit statischer Methode
FormelEinsRennen.java Anwendungsprogramm zum Testen des Interface Formel
    Version C Anwendungsprogramm, das mit Version C des Interface Formel arbeitet
8.7.3 Auflösung von Namensgleichheiten bei Default-Methoden
Konflikte.java Interfaces und Klassen, zum Thema Namensgleichheiten bei Default-Methoden
8.8.3 Innere Klassen
EinsMitInnerenKlassen.java Zwei Arten von inneren Klassen
EinsMitInnerenKlassenDemo.java Innere Klassen in anderen Klassen verwenden
ErzeugeWerteTabellen.java Anwendungsprogramm zum Tabellieren von Funktionswerten unter Einsatz von statischen inneren Klassen und einem Interface
Funktion.java Interface für Funktions-Objekte
GeburtstageVerwalten.java Anwendungsprogramm zur Verwaltung von Geburtstagen unter Einsatz von nicht-statischen inneren Klassen und einem Interface
Menuepunkt.java Interface für Menüpunkte-Objekte
8.8.4 Anonyme Klassen
ErzeugeWerteTabellen2.java Anwendungsprogramm zum Tabellieren von Funktionswerten unter Einsatz von anonymen inneren Klassen und einem Interface
GeburtstageVerwalten2.java Anwendungsprogramm zur Verwaltung von Geburtstagen unter Einsatz von anonymen inneren Klassen und einem Interface
8.10 Übungsaufgaben
Aufgabe 8.9  
    MetallPlatte.java Klasse MetallPlatte
Aufgabe 8.10  
    Bildschirm.java Klasse Bildschirm
    SpielFigur.java Klasse SpielFigur
Aufgabe 8.12  
    Brot.java Klasse Brot
    Mahlzeit.java Klasse Mahlzeit
    Salat.java Klasse Salat
    Sandwich.java Klasse Sandwich
    Wurst.java Klasse Wurst
Aufgabe 8.13 a)  
    Auto.java Klasse Auto
    AutoTest.java Klasse AutoTest
    Fahrzeug.java Klasse Fahrzeug
Aufgabe 8.13 b)  
    AKlasse.java Klasse AKlasse
    CKlasse.java Klasse CKlasse
    Elchtest.java Klasse Elchtest
Aufgabe 8.14  
    A.java Klasse A
    ABCD.java Klasse ABCD
    B.java Klasse B
    C.java Klasse C
    D.java Klasse D
Aufgabe 8.15  
    Point.java Klasse Point
9 Exceptions und Errors
Excep1.java Ein sehr einfaches Programm, welches aber bereits eine Exception produzieren kann
9.1.3 Abfangen von Exceptions
Excep2.java Die bei Division durch 0 auftrende Exception wird abgefangen
9.1.4 Ein Anwendungsbeispiel
LiesAusDatei.java Programm zum Lesen einzelner Zeichen aus einer Datei
    Version 1 Komplett ohne Fehlerbehandlung
    Version 2 Mit pauschaler Fehlerbehandlung
    Version 3 Mit individueller Fehlerbehandlung
9.1.5 Die RuntimeException
Excep1.java Ein sehr einfaches Programm, welches aber bereits eine Exception produzieren kann
9.1.6 Übungsaufgaben
Aufgabe 9.2  
    Exueb1.java Klasse Exueb1
    Exueb2.java Klasse Exueb2
    Exueb3.java Klasse Exueb3
    Exueb4.java Klasse Exueb4
    Exueb5.java Klasse Exueb5
    Exueb6.java Klasse Exueb6
    Exueb7.java Klasse Exueb7
9.2.1 Definieren eigener Exceptions
DigitException.java Eigene Exception-Klasse zur Erkennung von Ziffern und Erzeugen entsprechender Exception
LiesAusDatei_3.java Klasse zum Auslesen einer Datei und Erkennen von Ziffern
9.2.3 Vererbung und Exceptions
PingException.java Die Ping-Exception
PingPong.java Ein Programm, welches Exceptions auslöst
    Version 1 Jede Exception wird in einem eigenen try-catch-Block behandelt
    Version 2 Nur ein try-catch-Block für alle drei Exceptions
PingPongException.java Die PingPong-Exception
PongException.java Die Pong-Exception
9.2.4 Vorsicht, Falle!
PingPong.java Ein Programm, welches Exceptions auslöst
    Version 3 Die PingPongException wird vor der PongException gefangen
    Version 4 Die PongException wird vor der PingPongException gefangen
9.2.5 Der finally-Block
PingPong.java Ein Programm, welches Exceptions auslöst
    Version 5 Alle Exceptions ausser der PongException werden weitergeleitet
    Version 6 Das Betreten und verlassen des "kritischen Bereichs" wird durch Ausgaben auf die Konsole gekennzeichnet
    Version 7 Die Meldung des »Verlassens« wandert in den try-Block
    Version 8 Die Meldung des »Verlassens« wird dupliziert: sie steht sowohl im catch-Block als auch nach der try-catch-Anweisung
    Version 9 Die wahrhaft elegante Lösung: die Ausgabe erscheint im finally-Block
9.2.8 Übungsaufgaben
Aufgabe 9.4  
    Exueb8.java Klasse Exueb8
9.3.1 Zusicherungen im Programmcode
AssertionTest.java Methode kehrwert mit einer Zusicherung
9.4 Mehrere Ausnahmetypen in einem catch-Block
Wurzel.java Programm mit herkömmlichem Exception-Handling
WurzelMultiCatch.java Programm mit Exception-Handling für zwei Ausnahme-Typen in einem catch-Block
10.1.1 Deklaration eines Aufzählungstyps
typen Paket typen
    Jahreszeit.java Die vier Jahreszeiten als enum-Typ
10.1.2 Instanzmethoden der enum-Objekte
Aufzaehlungen.java Verwendung des Jahreszeiten-enum-Typs
10.1.3 Selbstdefinierte Instanzmethoden für enum-Objekte
Enumerations.java Verwendung des Noten-Typs
typen Paket typen
    Noten.java Die Noten auf der Klavier-Tastatur
10.1.4 Übungsaufgaben
Aufgabe 10.1  
    StudentenTest.java Klasse StudentenTest
Aufgabe 10.2  
    StudentenTest2.java Klasse StudentenTest2
Aufgabe 10.3  
    EsWarEinmal.java Klasse EsWarEinmal
10.2.1 Herkömmliche Generizität
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
10.2.2 Generizität durch Typ-Parameter
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
10.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
10.2.4 Wildcards
TollesPaarTestWild1.java Testprogramm ohne Wildcards fuer die Klasse TollesPaar
TollesPaarTestWild2.java Testprogramm mit Wildcards fuer die Klasse TollesPaar
10.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
10.2.6 Generische Methoden
GenPaarTest3.java Testprogramm mit generischen Methoden
GenPaarTest5.java Testprogramm mit generischen Methoden und eingeschränkten Typ-Parametern
10.2.7 Verkürzte Notation bei generischen Datentypen
GPaar.java Generischer Datentyp für die Beispielprogramme
GPaarDemo.java Bisherige Notation beim Einsatz generischer Datentypen
GPaarDiamondDemo.java Verkürzte Notation beim Einsatz generischer Datentypen
GPaarDiamondFalsch.java Unzulässige Verwendung der verkürzten Notation beim Einsatz generischer Datentypen
10.2.9 Übungsaufgaben
Aufgabe 10.4  
    TierKaefig.java Klassen für Aufgabe 10.4
Aufgabe 10.5  
    Tierleben.java Klassen und Interfaces für Aufgabe 10.5
Aufgabe 10.6  
    RateMal.java Klasse RateMal
Aufgabe 10.7  
    Konzert.java Klassen für Aufgabe 10.7
10.3 Sortieren von Feldern und das Interface Comparable
Ring.java Klasse zur Darstellung von Ringobjekte, die nach ihrer Groesse sortiert werden koennen
RingDemo.java Testprogramm zur zufaelligen Erzeugung und Sortierung von zehn Ringen
11.1.1 Arbeiten mit String-Objekten
StringRefs.java Diese Klasse stellt String-Objekte als Referenzdatentyp vor
11.2.1 Arbeiten mit "eingepackten" Daten
WrapperBeispiel.java Diese Klasse zeigt die Funktionsweise von Wrapperklassen
11.2.3 Ein Anwendungsbeispiel
Summiere.java Diese Klasse stellt ein Summations-Programm dar
11.2.4 Automatische Typwandlung für die Wrapper-Klassen
AutoBoxing.java Verwendung von Wrapper-Objekten mit AutoBoxing
AutoBoxingDangers.java Gefahren bei der Verwendung von Wrapper-Objekten
Boxing.java Verwendung von Wrapper-Objekten mit explizitem Boxing
11.3.1 Arbeiten mit langen Ganzzahlen
QuadrierungBigInt.java Diese Klasse ist ein modifiziertes Quadrierungsprogramm
QuadrierungLong.java Diese Klasse quadriert die Zahl 16 mehrfach
11.3.4 Arbeiten mit langen Gleitkommazahlen
ProduktSummeBigDec.java Diese Klasse korrigiert Fehler der Klasse ProduktSummeDouble
ProduktSummeDouble.java Diese Klasse gibt bei der Rechnung mit Gleitkommazahlen einzelne Rechenschritte aus
11.3.6 Viele Stellen von Nullstellen gefällig?
BigNewton.java Näherungsweise Berechung der Nullstellen der Funktion sqrt(2) mit Hilfe des Newton-Verfahrens
11.4.1 Standardausgaben in Java
StandardFormat.java Diese Klasse zeigt wie man das Ausgabeformat von double- Werten beeinflussen kann
11.4.2 Arbeiten mit Format-Objekten
MyFormats.java Diese Klasse zeigt an weiteren Beispielen "selbst gemachte" Formate zur Ausgabe von numerischen Werten
11.4.3 Vereinfachte formatierte Ausgabe
Ausgaben.java Formatierte Ausgabe mit printf
11.5.2 Auf die Plätze, fertig, los!
Stoppuhr.java Diese Klasse realisiert eine einfache Stoppuhr
11.5.3 Spezielle Calendar-Klassen
CalArith.java Diese Klasse gibt "Zeitpunkte" aus
11.5.4 Noch einmal: Zeitmessung
CalStoppuhr.java Diese Klasse ist eine alternative Version der "einfachen Stoppuhr" und arbeitet mit "Zeitpunkten"
11.6.1 Arbeiten mit Format-Objekten für Datum/Zeit-Angaben
MyDateFormats.java Diese Klasse gibt noch einige weitere Beispiele für "selbst gestrickte" Formate zur Ausgabe von Zeitangaben
MyStandardDateFormats.java Diese Klasse gibt noch einige Beispiele für Standard-Formate zur Ausgabe von Zeitangaben
11.7.3.2 Die Klasse HashSet
ZahlenMenge.java Diese Klasse zeigt die Verwendung einer Collection vom Typ HashSet
11.7.3.4 Die Klasse TreeSet
SortierteZahlenMenge.java Diese Klasse zeigt die Verwendung einer Collection vom Typ TreeSet
11.7.4.2 Die Klassen ArrayList und LinkedList
ZahlenListe.java Diese Klasse zeigt die Anwendung der List- Klassen am Beispiel der Klasse ArrayList
11.7.4.3 Suchen und Sortieren - die Klassen Collections und Arrays
SortierteZahlenListe.java Diese Klasse demonstriert die Anwendung der Klasse Collections
11.7.5 Verkürzte Notation bei Collection-Datentypen
ListDiamondDemo.java Verkürzte Schreibweise für den Diamond-Operator
ListDiamondFalsch.java Hier kann Java den vollständigen Datentyp nicht ableiten
11.8 Die Klasse StringTokenizer
StringTokens.java Diese Klasse ist ein Beispielprogramm zur Verwendung von StringTokenizer- Objekten
12.2 Ein einfaches Beispiel mit dem AWT
FrameOhneInhaltAWT.java Diese Klasse erzeugt einen Frame mit den Mitteln des AWT- Paketes
12.3 Let’s swing now!
FrameOhneInhalt.java Diese Klasse erzeugt einen Swing- Frame mit den von uns benötigten Erweiterungen
FrameOhneInhaltSwing.java Diese Klasse erzeugt einen Frame mit den Mitteln von Swing- Klassen
12.4 Etwas "Fill-in" gefällig?
FrameMitText.java Diese Klasse erzeugt einen Frame mit Text
13.3 Die abstrakte Klasse JComponent
FrameMitTextUndToolTip.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.4.1 Die Klasse Color
FarbigesLabel.java Diese Klasse kann ein farbiges Label darstellen
FrameMitSchwarzemLabel.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.4.2 Die Klasse Font
FrameMitMonospacedText.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.4.3.1 Die Klasse FlowLayout
FrameMitFlowLayout.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.4.3.2 Die Klasse BorderLayout
FrameMitBorderLayout.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.4.3.3 Die Klasse GridLayout
FrameMitGridLayout.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.5.1 Die Klasse JLabel
FrameMitBild.java Diese Klasse macht nichts anderes als ihr Name verspricht
babycat.jpg Im Programm verwendetes Bild, muss im gleichen Verzeichnis wie das Programm liegen!
13.5.3 Die Klasse JButton
FrameMitButtons.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.5.4 Die Klasse JToggleButton
FrameMitToggleButtons.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.5.5 Die Klasse JCheckBox
FrameMitCheckBoxes.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.5.6 Die Klassen JRadioButton und ButtonGroup
FrameMitRadioButtons.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.5.7 Die Klasse JComboBox
FrameMitComboBoxes.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.5.8 Die Klasse JList
FrameMitListe.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.5.10 Die Klassen JTextField und JPasswordField
FrameMitTextFeldern.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.5.11 Die Klasse JTextArea
FrameMitTextArea.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.5.12 Die Klasse JScrollPane
FrameMitScrollText.java Diese Klasse macht nichts anderes als ihr Name verspricht
13.5.13 Die Klasse JPanel
FrameMitPanels.java Diese Klasse macht nichts anderes als ihr Name verspricht
babycatSmall.jpg Im Programm verwendetes Bild, muss im gleichen Verzeichnis wie das Programm liegen!
13.6.3 Die Klasse JDialog
TopLevelContainer.java Diese Klasse demonstriert die Anwendung der drei Fenster-Arten Frame, Window und Dialog
13.6.5 Die Klasse JToolBar
FrameMitMenuBar.java Diese Klasse macht nichts anderes als ihr Name verspricht
images Unterverzeichnis mit den Grafiken für das Programm
    blau.gif Blaues Kästchen
    gruen.gif Grünes Kästchen
    rot.gif Rotes Kästchen
13.7 Übungsaufgaben
Aufgabe 13.1  
    VierButtonFrame.java Klasse VierButtonFrame
Aufgabe 13.3  
    NotenEingabe.java Klasse NotenEingabe
14.1.1 Zufällige Grautöne als Hintergrund
Farbwechsel.java Diese Klasse erzeugt ein Swing-Fenster mit einem Button, der in der Lage ist die Hintergrundfarbe des Frames zufällig zu ändern
14.1.2 Ein interaktiver Bilderrahmen
Bilderrahmen.java Diese Klasse erzeugt ein Swing-Fenster mit einem Meüe, einer Toolbar und einem Label mit Iconimage
images Grafiken, die vom Beispielprogramm benötigt werden
    blau.gif Blauer Rahmen
    gruen.gif Grüner Rahmen
    rot.gif Roter Rahmen
    cat.gif Katze
    dog.gif Hund
    mouse.gif Maus
14.2.2 Anonyme Klasse als Listener-Klasse
Farbwechsel2.java Diese Klasse ist eine Version unserer Farbwechsel- Klasse, allerdings mit anonymer Listener- Klasse
14.2.3 Container-Klasse als Listener-Klasse
Farbwechsel3.java Diese Klasse ist eine Version der Farbwechsel- Klasse, die nun selbst eine Listener- Klasse ist
14.2.4 Separate Klasse als Listener-Klasse
ButtonListener.java Diese Klasse ist ein Beispiel für eine eigenständige Listener- Klasse
Farbwechsel4.java Diese Klasse benutzt die Listener- Klasse ButtonListener
14.4 Listener-Interfaces und Adapter-Klassen
CloseToggleButtons.java Diese Klasse erzeugt ein Swing-Fenster mit zwei Toggle-Buttons, die zum Schließen des Fensters aktiviert sein müssen
14.5 Listener-Registrierung bei den Event-Quellen
LookAndFeel.java Diese Klasse erzeugt ein Swing-Fenster, das mit Buttons und Combo-Box sein Look and feel ändern kann
14.6 Auf die Plätze, fertig, los!
StoppuhrFrame.java Diese Klasse erzeugt ein Swing-Fenster mit Stoppuhrfunktion
14.7 Übungsaufgaben
Aufgabe 14.6  
    EuroConverter.java Klasse EuroConverter
15.1.3 Die abstrakte Klasse Graphics
ZeichenPanel.java Diese Klasse ist eine spezielle JPanel-Klasse mit verschiedenen Graphics- Methoden
Zeichnung.java Diese Klasse erzeugt ein Swing-Fenster mit einer Zeichnung
15.1.4 Ein einfaches Zeichenprogramm
PunkteVerbinden.java Diese Klasse erzeugt ein Swing-Fenster mit einem Zeichenbrett
Zeichenbrett.java Diese Klasse ist eine spezielle JPanel-Klasse für unser Zeichenbrett
15.1.5 Layoutveränderungen und der Einsatz von revalidate
NewButtonFrame1.java Diese Klasse erzeugt ein Swing-Fenster, das sich wie erwartet verhält
NewButtonFrame2.java Diese Klasse erzeugt ein Swing-Fenster und demonstriert die Funktion von validate(), invalidate() und revalidate()
15.3 Übungsaufgaben
Aufgabe 15.2  
    GeoObjekt.java Interface GeoObjekt
16.1 Ein einfaches Beispiel
ABCPrinter.java Diese Klasse gibt das Alphabet aus
ABCThread.java Diese Klasse gibt auch das Alphabet aus, ist jedoch ein Thread
MehrmalsP.java Diese Klasse führt zweimal hintereinander die run- Methode der ABCPrinter- Klasse aus
MehrmalsT.java Diese Klasse führt zweimal hintereinander die run- Methode der ABCThread- Klasse aus
16.2.1 Die Klasse Thread
MachMal.java Diese Klasse macht eine Sekunde lang gar nichts
TVProgAuslosung.java Diese Klasse lost zwischen versch TV- Programmen
TVProgThread.java Diese Klasse stellt die Funktionalität unserer Programmauslosung als Thread dar
16.2.2 Das Interface Runnable
ABCRunnable.java Diese Klasse gibt das Alphabet aus und implementiert das Runnable- Interface
MehrmalsR.java Diese Klasse führt zweimal hintereinander die run- Methode der ABCRunnable- Klasse aus
TVProgAuslosungMitRunnable.java Diese Klasse lost zwischen versch TV- Programmen
TVProgRunnable.java Diese Klasse stellt die Funktionalität unserer Programmauslosung dar und implementiert das Runnable- Interface
16.2.3 Threads vorzeitig beenden
StoppuhrMitThread.java Diese Klasse realisiert eine Stoppuhr mit sich aktualisierender Uhrzeit
UhrzeitThread.java Diese Klasse gibt Sekundenweise die aktuelle Uhrzeit zurück
16.4.1 Das Leser/Schreiber-Problem
Figur.java Diese abstrakte Klasse stellt eine Schachfigur dar
FigurenThreads.java Demonstration des Leser/Schreiber-Problems
    Version 1 In dieser Version besteht das Problem
    Version 2 In dieser Version wird das Problem gelöst
GuteFigur.java In dieser Klasse ist das Problem gelöst
Leser.java Diese Klasse stellt unseren Leser dar
SchlechteFigur.java Diese Klasse führt bei Verwendung zu Problemen
Schreiber.java Diese Klasse stellt unseren Schreiber dar
16.4.2 Das Erzeuger/Verbraucher-Problem
EVTest1.java Diese Klasse ist ein Testprogramm zur Demonstration des Erzeuger/Verbraucher-Problems
EVTest2.java Diese Klasse demonstriert die Lösung des Erzeuger/Verbraucher-Problems
EVTest3.java Diese Klasse demonstriert die Deadlock-Situation
Erzeuger.java Diese Klasse erzeugt einen int-Wert
GuterWert.java In dieser Klasse ist das Problem gelöst
KlemmWert.java Diese Klasse führt bei Verwendung zum Deadlock
SchlechterWert.java Diese Klasse führt bei Verwendung zu Problemen
Verbraucher.java Diese Klasse "verbraucht" einen int-Wert
Wert.java Diese abstrakte Klasse repräsentiert einen int-Wert
16.5.1 Auf die Plätze, fertig, los!
AnzeigeThread.java Diese Klasse dient zur dynamischen Zeitanzeige
StoppuhrFrameThread.java Diese Klasse stellt eine inzwischen fast komplette SToppuhr zur Verfügung
16.5.2 Spielereien
AutomatFrame.java Diese Klasse ist ein einfacher Spielautomat
ColorRunLabel.java Diese Klasse brauchen wir für die Label
KnopfListener.java Diese Klasse ist ein Listener der beim Druck auf einen Button eine veränderliche Label-Anzeige per Thread startet
StartStopButton.java Diese Klasse benötigen wir für die Knöpfe
16.6 Übungsaufgaben
Aufgabe 16.1  
    KartenTerminal.java Klasse KartenTerminal
    KonzertDaten.java Klasse KonzertDaten
    UseTerminals.java Klasse UseTerminals
17.2 Dateien und Verzeichnisse - die Klasse File
Create.java Diese Klasse arbeitet mit File-Objekten
17.3.1 Einfache Reader- und Writer-Klassen
WriteToFile.java Diese Klasse schreibt etwas in eine Datei
17.3.2 Gepufferte Reader- und Writer-Klassen
BufferedWriteToFile.java Diese Klasse kann gepuffert etwas in eine Datei schreiben
17.3.3 Die Klasse StreamTokenizer
ZahlenSumme.java Diese Klasse liest von der Tastatur eine Zeichenfolge ein um sie dann zu zerlegen und dabei die Zahlenwerte aufzusummieren und die Wörter aneinanderzuhängen
17.3.4 Die Klasse PrintWriter
PrintWriting.java Diese Klasse kann mit Hilfe der print- Methode verschiedene Werte ausgeben
17.3.5.1 Was machen eigentlich die IOTools?
InTools.java Diese Klasse zeigt wie die IOTools funktionieren
17.3.5.2 Konsoleneingabe über ein Scanner-Objekt
Eingaben.java Konsolen-Eingabe unter Verwendung der Scanner-Klasse
17.4.1 Einige InputStream- und OutputStream-Klassen
DataWriteAndRead.java Diese Klasse speichert elementare Werte in einer Datei und liest sie wieder ein
17.4.2 Die Serialisierung und Deserialisierung von Objekten
Datensatz.java Diese Klasse demonstriert das Prinzip der Serialisierung
ObjectRead.java Diese Klasse schreibt Objekte
ObjectWrite.java Diese Klasse liest Objekte
17.5 Streams im try-Block mit Ressourcen
Kopiere.java Beispielprogramm zum Kopieren einer Textdatei
    Klassisch Umständliche Version mit manuellem Schließen der Datenströme
    Try-With-Resources Vereinfachte Version mit automatischem Schließen der Datenströme
ZeigeDateiInhalt.java Beispielprogramm zur Ausgabe einer Textdatei
    Klassisch Umständliche Version mit manuellem Schließen der Datenströme
    Try-With-Resources Vereinfachte Version mit automatischem Schließen der Datenströme
17.6.2.1 Das Interface Path und die Klasse Paths
PathBeispiele.java Zugriffe auf Dateisysteme-Pfade mittels Path und Paths
17.6.2.2 Die Klasse Files
DateiOperationen.java Dateioperationen mit der Klase Files aus dem Paket java.nio.file
18.1.2 IP-Adressen
DNSAnfrage.java Diese Klasse startet eine DNS- Anfrage
18.2.2 Ein einfacher Server
DateTimeProtokoll.java Diese Klasse stellt das Protokoll für unseren Zeitserver zur Verfügung
DateTimeServer.java Diese Klasse realisiert einen einfachen Zeit- Server
18.2.3 Ein einfacher Client
DateTimeClient.java Diese Klasse ist ein Client für unseren Zeitserver
18.2.4 Ein Server für mehrere Clients
DateTimeDienst.java Diese Klasse stellt das Protokoll für unseren DateTimeMultiServer zur Verfügung
DateTimeMultiServer.java Diese Klasse ist kann mehrere Clienst gleichzeitig bedienen
18.2.5 Ein Mehrzweck-Client
MyClient.java Diese Klasse ist ein Multifunktions- Client
18.2.6 Client/Server-Kommunikation über URLs
LiesURL.java Diese Klasse liest den Text eines Webdokuments
19.1.1 Lambda-Ausdrücke in Aktion - zwei Beispiele
BuchstabenDruck.java Klasse, die eine Klassenmethode drucke() bereitstellt
ZaehlButton.java Ereignisbehandlung mit anonymer Klasse
ZaehlButtonMitLambda.java Ereignisbehandlung mit Lambda-Ausdruck
ZweiRunnables.java Vergleich von Runnables mit anonymer Klasse und mit Lambda-Ausdruck
19.1.3 Lambda-Ausdrücke und funktionale Interfaces
Funktion1p.java Funktionales Interface einer double-Methode mit einem Parameter
Funktion2p.java Funktionales Interface einer double-Methode mit zwei Parametern
WerteTabellen.java Beispiele für Anwendung von funktionalen Interfaces und Lambda-Ausdrücken
19.1.4 Vordefinierte funktionale Interfaces und Anwendungen auf Datenstrukturen
LambdaListenOperationen.java Listen-Operationen mit Lambda-Ausdrücken
WerteTabellenMitFunction.java Beispiele für vordefinierte funktionale Interfaces und Lambda-Ausdrücke
19.1.5 Methodenreferenzen als Lambda-Ausdrücke
BuchstabenDruck.java Klasse, die eine Klassenmethode drucke() bereitstellt
BuchstabenDrucker.java Klasse, die eine Instanzmethode drucke() bereitstellt
LambdaListOpsMitMethRef.java Methoden-Referenzen als Lambda-Ausdrücke
ZweiRunnablesMitMethRef.java Einsatz von statischen und nicht-statischen Methodenreferenzen
19.1.6 Zugriff auf Variablen aus der Umgebung innerhalb eines Lambda-Ausdrucks
VarZugriff.java Zugriff auf Variablen innerhalb eines Lambda-Ausdrucks
19.2.1 Streams in Aktion
PipelineOperationen1.java Demo-Programm 1 für Pipeline-Operationen auf Streams
PipelineOperationen2.java Demo-Programm 2 für Pipeline-Operationen auf Streams
19.2.4 Die Stream-API
PipelineFakultaet.java Demo-Programm 1 zu Zwischen- und Abschlussoperationen der Stream-API
PipelineFakultaetBigInt.java Demo-Programm 2 zu Zwischen- und Abschlussoperationen der Stream-API
19.2.5 Übungsaufgaben
Aufgabe 19.3  
    Pipeline1.java Klasse Pipeline1
Aufgabe 19.4  
    Pipeline2.java Klasse Pipeline2
20.1 JShell für kleine Skripte
HalloJShell.jsh Hallo Welt für JShell
    Version 1 Minimale Version mit nur einer Zeile
    Version 2 Bessere Version mit Beenden von JShell am Ende
Serien.jsh Beispiel für ein größeres JShell-Skript ohne Klassen
20.2 Das Java-Modulsystem
Java-Modulsystem.zip Alle Quellcodes als ZIP-Datei
m_app Verzeichnis des Moduls m_app
    app Internes Paket app, das nur im Modul m_app verwendet werden kann
        Main.java Anwendungsprogramm mit der main-Methode
    module-info.java Modulbeschreibung für das Modul m_app
m_rechner Verzeichnis des Moduls m_rechner
    module-info.java Modulbeschreibung für das Modul m_rechner
    rechner Nach außen sichtbares Paket rechner
        Rechner.java Die Klasse Rechner mit der Methode berechne
        intern Internes Paket intern, das nur im Modul m_rechner verwendet werden kann
            Addition.java Die interne Klasse für die Berechnung einer Addition
            Operand.java Das Interface, das von den internen Rechnenklassen implementiert werden muss
            Subtraktion.java Die interne Klasse für die Berechnung einer Subtraktion
20.3 Bühne frei für JavaFX
HalloJavaFX.java Hallo Welt für JavaFX
    Version 1 Komplett in Java geschrieben
    Version 2 Mit ausgelagertem Stylesheet
    Version 3 Mit ausgelagerter Layoutbeschreibung
layout.fxml Layoutbeschreibung für Version drei des Programms
style.css Stylesheet für Version zwei und drei des Programms

Diese Webseite bietet erweiterte Informationen zum Buch Grundkurs Programmieren in Java, das im Hanser Verlag erschienen ist.

weitere Webseiten

Kontakt

Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.