Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Aus dem Lektorat
Inhaltsverzeichnis
Vorwort
1 Hello World!
1.1 Einführung
1.2 Java installieren
Welche Versionsnummer?
Alternative JDKs
1.3 IntelliJ IDEA
IntelliJ installieren
»Hello World!« in IntelliJ
Endlich Code
Beispieldateien öffnen
1.4 Der Hello-World-Code
1.5 Alternativen zu IntelliJ
Visual Studio Code
Editoren ohne Java-Unterstützung
2 Java-Crashkurs
2.1 Die Idee des objektorientierten Programmierens
Methoden helfen, Teilaufgaben zu lösen
Klassen bringen Daten und Methoden zusammen
Objekte sind konkrete Ausformungen von Klassen
Begriffe
2.2 Java-Syntax
Ärger mit Strichpunkten
Regeln zur Benennung von Variablen, Klassen etc.
Java-Schlüsselwörter
Kommentare im Java-Code
Die Java-Standardbibliothek
Weniger Tippaufwand mit »import«
»import« muss vor der Klassendefinition stehen!
2.3 Wiederholungsfragen
3 Variablenverwaltung
3.1 Variablen
Einführungsbeispiel
Variablen deklarieren, initialisieren und verwenden
Variablendeklaration ohne Typangabe (»var«)
Einschränkungen für »var«
3.2 Elementare Datentypen
Ganze Zahlen
Fließkommazahlen
Rechnen mit »double«-Zahlen
Boolesche Werte
Zufallszahlen
Typumwandlung (Casting)
Modifizierer für die Variablendeklaration
3.3 Literale
Literale für ganze Zahlen
Literale für Fließkommazahlen
3.4 Variablen einlesen und ausgeben
Datenausgabe
Dateneingabe
Beispiel
3.5 Variablen im größeren Java-Kontext
Gültigkeitsebenen
Variablen für Objekte
Wrapper-Klassen für elementare Datentypen
3.6 Konstanten und Enums
Konstantenaufzählungen (Enums)
3.7 Wiederholungsfragen und Übungen
4 Operatoren
4.1 Überblick
4.2 Details und Sonderfälle
Zuweisungen
Mathematische Operatoren
Inkrement und Dekrement
Vergleiche
Boolesche Ausdrücke (verknüpfte Bedingungen)
Rechnen mit Bits
Sonstige Operatoren
4.3 Wiederholungsfragen
5 Verzweigungen und Schleifen
5.1 »if«-Verzweigungen
Lieber ein Klammernpaar zu viel als eines zu wenig!
Klare Logik durch richtiges Einrücken
Beispiel: Schaltjahrtest
5.2 »if«-Kurzschreibweise (ternärer Operator)
5.3 »switch«-Verzweigungen
Beispiel: Tage pro Monat
Alternative »switch«-Syntax seit Java 12
5.4 »for«-Schleifen
Achtung, Falle!
Variablendeklaration innerhalb der Schleife
Beispiele
»for«-Schleifen für Fließkommazahlen
Verschachtelte Schleifen
5.5 »for-each«-Schleifen
»for« versus »for-each«
5.6 »while«- und »do-while«-Schleifen
»while«-Schleifen
»do-while«-Schleifen
5.7 »break« und »continue«
break
continue
»break« und »continue« in verschachtelten Schleifen
Endlosschleifen
5.8 Wiederholungsfragen und Übungen
6 Arrays
6.1 Syntax
Arrays initialisieren
Deklaration und Initialisierung mit »var«
Zugriff auf Array-Elemente
Mehrdimensionale Arrays
Nichtrechteckige Arrays
Interna
6.2 Mit Arrays arbeiten
Arrays duplizieren
Beispiel 1: Array initialisieren
Beispiel 2: Minimum, Maximum und Mittelwert
6.3 Wiederholungsfragen
7 Zeichenketten
7.1 Der Datentyp »char«
Die »Character«-Klasse und ihre Methoden
7.2 Die »String«-Klasse
Mehrzeilige Zeichenketten
»String«-Eigenheiten
Zeichenketten vergleichen
Zeichenketten korrekt ordnen und sortieren
»String«-Methoden
Die »join«-Methode
Die Methoden »trim«, »strip« und »isBlank«
7.3 Formatierung und Konvertierung
Formatierung
Konvertierung von Zeichenketten in Zahlen
Lokalisierung von Ein- und Ausgabe
Umwandlung zwischen char-Arrays und Zeichenketten
7.4 Die »StringBuilder«-Klasse
7.5 Beispiele
Groß- und Kleinbuchstaben zählen
Pfad und Dateiname trennen
Palindrom-Test
7.6 Wiederholungsfragen und Übungen
8 Methoden
8.1 Einführung
Syntaxregeln
Statisch oder nichtstatisch?
8.2 Parameterliste
Parameter verändern
Finale Parameter
Overloading
Variable Parameterzahl
8.3 Rückgabewert und »return«
Klarerer Code durch »return«
8.4 Rekursion
Fakultät rekursiv berechnen
Der Stack
8.5 Tipps zum richtigen Einsatz von Methoden
Design von Methoden
Wann organisieren Sie Ihren Code in Methoden?
8.6 Beispiele
Array-Methoden: Minimum und Maximum ermitteln
Wir spielen Lotto
Array-Suche
CSS-Farbcodes validieren
Freie Plätze im Kino suchen
8.7 Wiederholungsfragen und Übungen
9 Datum und Uhrzeit
9.1 Datum und Zeit seit Java 8
»Machine Time Line« versus »Human Time Line«
Überblick über die Klassen und Methoden
Datum ermitteln, anzeigen und formatieren
Schaltjahr-spezifische Daten ermitteln
Uhrzeit ermitteln und anzeigen
Daten und Zeiten einlesen (»parse«)
Daten und Zeiten festlegen (»of«)
Zeitspannen ermitteln und auswerten
Rechnen mit Daten und Zeiten
Rechenzeit messen (Instant und Duration)
9.2 Veraltete Datums- und Zeitklassen (Date, Calendar)
Die »Date«-Klasse
Formatierung mit »format« bzw. »printf«
Formatierung mit der »SimpleDateFormat«-Klasse
Die »Calendar«-Klasse
Umwandlung von »Date« zu »LocalDate«
9.3 Wiederholungsfragen und Übungen
10 Exceptions
10.1 Exception-Klassen
Die »Throwable«-Klasse
Die »Error«-Klassen
Die »RuntimeException«-Klassen
Gewöhnliche Exceptions
10.2 try-catch
»try-catch« für Ressourcen
Exception-Weitergabe
10.3 Fehleranfällige Methoden deklarieren (»throws«)
Selbst absichern oder die Absicherung delegieren?
10.4 Selbst Exceptions auslösen (»throw«)
10.5 Beispiel
10.6 Wiederholungsfragen und Übungen
11 Klassen und Records
11.1 Eigene Klassen entwickeln
Korrekte Platzierung von Klassen im Paket
Top-Level-Klassen
Aufbau von Klassen
Beispiel: Rechteck-Klasse
Gültigkeitsebenen (»public«, »private« und »protected«)
Klassenvariablen und statische Methoden
11.2 Der Konstruktor
this
Destruktor und »close«
Beispiel: Rechteck-Klasse mit Konstruktor
11.3 »get«- und »set«-Methoden (Getter/Setter)
Beispiel: Rechteck-Klasse mit Getter/Setter
11.4 Records
Record-Syntax
Records als »Data Transfer Objects«
Records versus Klassen
11.5 UML-Diagramme
11.6 Beispiel: Bücher und Kapitel
Chapter-Klasse
Book-Klasse
Testcode
11.7 Wiederholungsfragen und Übungen
12 Listen, Sets und Maps
12.1 Generische Klassen anwenden
Wrapper-Klassen für elementare Datentypen
12.2 Listen
Collections-Methoden
Die »LinkedList«-Klasse
12.3 Sets
Lottozahlen
12.4 Maps
12.5 Beispiel: Polygone
Klasse »Point«
Klasse »Polygon«
Testcode
12.6 Beispiel: Schachfigur Springer
Klasse »Position«
Klasse »Knight«
12.7 Beispiel: Mitarbeiter verwalten
Rekursive Auswertung hierarchischer Strukturen
12.8 Wiederholungsfragen und Übungen
13 Vererbung
13.1 Vererbung
Methoden überschreiben
super
Konstruktor
Gültigkeitsmodifizierer
13.2 Beispiel: Klassen für Fahrräder
Basisklasse »Bicycle«
Erweiterte Klasse »MountainBike«
Erweiterte Klasse »EBike«
13.3 Finale und abstrakte Klassen
Mehrstufige Vererbung und Mehrfachvererbung
Instanzvariablen überschreiben
Finale Klassen und Methoden
Abstrakte Klassen
Generalisierung
Upcasts und Downcasts
Polymorphie
13.4 Die »Object«-Klasse
Die Methode »clone«
Die Methode »equals«
Die Methode »getClass«
Die Methode »hashCode«
Die Methode »toString«
Beispiel: »equals« und »hashCode« für »Rectangle«
13.5 Beispiel: Schachfiguren
Die abstrakte Klasse »Piece«
Die Klassen »Knight«, »Bishop« und »Rook«
Anwendung der Klassen
13.6 Wiederholungsfragen und Übungen
14 Schnittstellen
14.1 »interface« und »implements«
Wichtige Schnittstellen in der Java-Standardbibliothek
Schnittstellen implementieren (»implements«)
Generalisierung
Abstrakte Klassen versus Schnittstellen
14.2 Beispiel: Geometrische Figuren
Die Klassen »Circle« und »Rectangle«
Anwendung
Codeoptimierung
14.3 Wiederholungsfragen und Übungen
15 Geschachtelte und anonyme Klassen
15.1 Geschachtelte Klassen
Geschachtelte Schnittstellen und Enums
15.2 Anonyme Klassen
Beispiel: »FilenameFilter«
Variante 1: Geschachtelte Klasse
Variante 2: Anonyme Klasse
Variante 3: Lambda-Ausdruck
Syntax
Variable Capture
Interna
15.3 Statische geschachtelte Klassen
16 Generische Klassen und Methoden
16.1 Einführung
Hello Generics World!
16.2 Deklaration generischer Klassen und Schnittstellen
Typeinschränkungen
Generische Schnittstellen und Vererbung
16.3 Deklaration generischer Methoden
16.4 Wildcards
Wildcard-Parameter
Wildcards mit Regeln
Upper-Bounded Wildcards
Lower-Bounded Wildcards
Arrays
16.5 Wiederholungsfragen und Übungen
17 Lambda-Ausdrücke
17.1 Hello Lambda World!
Ein Blick hinter die Kulissen
17.2 Lambda-Syntax
»this« und »super«
Referenzen auf Methoden
Beispiel für Referenzen auf Methoden
17.3 Generische Lambda-Schnittstellen
Beispiel: Datenselektion mit der »Predicate«-Schnittstelle
17.4 Funktionale Programmierung mit Streams
Streams ausprobieren
Probleme mit Variablen, die nicht »effectively final« sind
17.5 Beispiel: Mitarbeiter sortieren und auswählen
Mitarbeiter selektieren
17.6 Wiederholungsfragen
18 Dateien und Verzeichnisse
18.1 Klassen- und Schnittstellenüberblick
Fehlerabsicherung
Ressourcen schließen
18.2 Dateien und Verzeichnisse ergründen
Besondere Verzeichnisse
Die »Path«-Schnittstelle
Testen, ob ein Verzeichnis bzw. eine Datei existiert
Eigenschaften einer Datei ermitteln
Liste der Dateien in einem Verzeichnis erzeugen
18.3 Dateien und Verzeichnisse bearbeiten
Beispiel
18.4 Textdateien lesen und schreiben
Textdateien schreiben
Textdateien auslesen
18.5 Beispiel: Evaluierungsdaten auswerten
Klasse »EvaluationRecord«
Statistische Auswertung der Evaluierung
18.6 Wiederholungsaufgaben und Übungen
19 JavaFX
19.1 Hello JavaFX!
Projektaufbau vereinfachen
Ein erster Blick hinter die Kulissen
Der Scene Graph
19.2 Arbeiten mit Steuerelementen
Der Scene Graph des Beispielprogramms
Steuerelemente und Container erzeugen
Ereignisse
19.3 Grafikprogrammierung
Einführungsbeispiel
Den Zufall zeichnen lassen
Lissajous-Figuren zeichnen
19.4 Wiederholungsaufgaben und Übungen
20 Java-Interna und -Bibliotheken
20.1 Java-Compiler und -Interpreter
Windows-Path-Konfiguration
Nochmals »Hello World!«
Interna: Compiler, Interpreter und Bytecode
20.2 Der »args«-Parameter
Beispiel: Passwortgenerator
Programm kompilieren und ausführen
20.3 Die Java-Shell
Fortgeschrittene Funktionen
20.4 import
Die »import«-Syntax
Standard-Import für »java.lang«
Statische Importe
20.5 Pakete
20.6 Bibliotheken
Fertige Java-Bibliotheken nutzen
IntelliJ und Gradle
20.7 Module (»Jigsaw«)
Beispiel
Welche Module sind erforderlich?
20.8 Wiederholungsfragen
A Crashkurs IntelliJ IDEA
A.1 Benutzeroberfläche
A.2 Projekte
A.3 Einstellungen
B Lösungen
B.1 Kapitel 2, »Java-Crashkurs«
B.2 Kapitel 3, »Variablenverwaltung«
B.3 Kapitel 4, »Operatoren«
B.4 Kapitel 5, »Verzweigungen und Schleifen«
B.5 Kapitel 6, »Arrays«
B.6 Kapitel 7, »Zeichenketten«
B.7 Kapitel 8, »Methoden«
B.8 Kapitel 9, »Datum und Uhrzeit«
B.9 Kapitel 10, »Exceptions«
B.10 Kapitel 11, »Klassen«
B.11 Kapitel 12, »Listen, Maps und Sets«
B.12 Kapitel 13, »Vererbung«
B.13 Kapitel 14, »Schnittstellen«
B.14 Kapitel 16, »Generische Klassen und Methoden«
B.15 Kapitel 17, »Lambda-Ausdrücke«
B.16 Kapitel 18, »Dateien und Verzeichnisse«
B.17 Kapitel 19, »JavaFX«
B.18 Kapitel 19, »Pakete, Bibliotheken und Module«
Stichwortverzeichnis
Rechtliche Hinweise
Über den Autor
← Prev
Back
Next →
← Prev
Back
Next →