Gliederung des Textes: Java-Programme. Lese- und Lernhilfe für [Staud 2026a] (Version 2026/7/24) Vorwort, Inhalt, Abkürzungen 1 Einleitung 1.1 Konzept 1.2 Bibliotheken 1.3 Packages 1.4 Formatierung und Schreibweise 2 Grundlagen 2.1 Datentypen 2.2 Attribute 2.3 Logische Operatoren 2.4 Referenzen 2.5 Der Begriff "Typ" in Java 3 Konsolenarbeit 3.1 Ausgeben auf Konsole 3.2 Lesen von der Konsole 4 Klassen, Objekte, Methoden 4.1 Klassen einrichten 4.2 Objekte einrichten - Konstruktoren 4.3 Record-Klassen 4.4 Aufruf von Methoden und Attributen 5 Prozedurales 5.1 Schleifen und Verzweigungen 5.2 Das Try/Catch-Konstrukt 6 Textdateien bearbeiten 6.1 Einleitung 6.2 Paket java.io 6.3 Zugriffe mit Streams 6.4 Klasse File 7 Exceptions 8 Projekt HS1 - Objekterzeugung 8.1 Klasse HP (Hauptprogramm; main) 8.2 Klasse Stud 8.3 Ergebnis Programmlauf 8.4 Betrachtete Themen 9 Projekt HS2 - Objekte und Referenzen 9.1 Klasse HP 9.2 Klasse Stud 9.3 Ergebnis Programmlauf 9.4 Anmerkungen zum Programm 9.5 Betrachtete Themen 10 Projekt HS3 - Array mit Objekten 10.1 Klasse HP 10.2 Klasse Stud 10.3 Ergebnis Programmlauf 10.4 Beschreibung des Programms 10.5 Betrachtete Themen 11 Projekt HS4 - Aufrufe über Klassengrenzen 11.1 Klasse HP 11.2 Klasse Noten 11.3 Klasse Stud 11.4 Ergebnis Programmlauf 11.5 Beschreibung des Programms 11.6 Betrachtete Themen 12 Projekt HS5 - Eingaben 12.1 Klasse HP 12.2 Klasse Stud 12.3 Ergebnis Programmlauf 12.4 Anmerkungen zum Programm 12.5 Betrachtete Themen 13 Exkurs - Nachrichtenverkehr 14 Projekt HS6 - Record-Klassen 14.1 Projektbeschreibung 14.2 Klasse HP 14.3 Klasse Stud 14.4 Ergebnis Programmlauf 14.5 Betrachtete Themen 14.6 Exkurs - Record vs. Klasse 14.7 Exkurs - Methode hashCode() 15 Projekt HS7 - Vererbung, Attribute 15.1 Klasse Fahrzeuge 15.2 Klasse PKW 15.3 Klasse LKW 15.4 Klasse VAN 15.5 Klasse HP 15.6 Ergebnis Programmlauf 15.7 Betrachtete Themen 15.8 Projektbeschreibung 16 Projekt HS7a - Override und Overload 16.1 Klasse HP 16.2 Klasse Fahrzeuge 16.3 Klasse PKW 16.4 Ergebnis Programmlauf 16.5 Betrachtete Themen 16.6 Exkurs: Override vs. Overload 17 Projekt HS8 - Kapselung 17.1 Klasse HP 17.2 Klasse Stud 17.3 Ergebnis Programmlauf 17.4 Projektbeschreibung 17.5 Betrachtete Themen 17.6 Anmerkung 18 Projekt HS9 - Assoziationen 18.1 Klasse HP 18.2 Klasse Stud 18.3 Klasse Note 18.4 Ergebnis Programmlauf 18.5 Erläuterungen zum Programm 18.6 Betrachtete Themen 19 Projekt hsdaten - Dateien 19.1 Klasse Erstellen 19.2 Klasse Schreiben 19.3 Klasse Schreiben2 19.4 Klasse Lesen 19.5 Klasse Anhaengen 19.6 Klasse Loeschen 19.7 Klasse ErzeugLoesch 19.8 Klasse EinlesenCSV 20 Übungsaufgaben Teil 1 20.1 Aufgabe 1 - Klasse und Objekt 20.2 Aufgabe 2 - Referenzen 20.3 Aufgabe 3a - Arrays Einführung 20.4 Aufgabe 3b - Arrays mit Objekten 21 Übungsaufgaben Teil 2 21.1 Aufgabe 4a - Klassen ohne Beziehung 21.2 Aufgabe 4b -Einseitig 21.3 Aufgabe 4c - Bidirektional 21.4 Aufgabe 4d - n:m-Beziehung 21.5 Aufgabe 4e - Assoziationsklasse 22 Übungsaufgaben Teil 3 22.1 Aufgabe 5 - Eingaben 22.2 Aufgabe 6 - Record 22.3 Aufgabe 7 - Vererbung 22.4 Aufgabe 8 - Kapselung 22.5 Aufgabe 9 - Overload 23 Übungsaufgaben Teil 4 23.1 Aufgabe 10 - Einstieg 23.2 Aufgabe 11 - Konstruktoren 23.3 Aufgabe 12 - Array 23.4 Aufgabe 13 - Kapselung 23.5 Aufgabe 14 - Vererbung 23.6 Aufgabe 15 - Override 23.7 Aufgabe 16 - Polymorphie 24 Übungsaufgaben Teil 5 24.1 Aufgabe 17 - Abstrakte Klasse 24.2 Aufgabe 18 - Interface 24.3 Aufgabe 19 - 1:1 24.4 Aufgabe 19b - Bidirektional 24.5 Aufgabe 20 - n:m 24.6 Aufgabe 21 - Klassendiagramm HS 25 Übungsaufgaben Teil 6 25.1 Aufgabe 22 - Liste 25.2 Aufgabe 23 - Unternehmen 25.3 Aufgabe 25 - Abteilungszugehörigkeit 25.4 Aufgabe 26 - PC 25.5 Aufgabe 27 - Projekte 26 Übungsaufgaben Teil 7 26.1 Aufgabe 28 - n:m-Beziehung 26.2 Aufgabe 29 - Rekursive Beziehung 26.3 Aufgabe 30 - Gehaltsauswertung 26.4 Aufgabe 31 - Projektstatistik 26.5 Aufgabe 32 - Mini-Personalverwaltung 27 Übungsaufgaben Teil 8 27.1 Aufgabe 33 - Vererbung 27.2 Aufgabe 34 - Override 27.3 Aufgabe 35 - Overload 27.4 Aufgabe 36 - Abstraktes 28 Übungsaufgaben Teil 9 28.1 Aufgabe 37 - Interface 28.2 Aufgabe 38 - Mehrere Interfaces 28.3 Aufgabe 39 - Polymorphie 28.4 Aufgabe 40 - Laufzeittyp 28.5 Aufgabe 40a - Angestellte 29 Übungsaufgaben Teil 10 29.1 Aufgabe 41 - Records 29.2 Aufgabe 42 - Projektmitarbeit 29.3 Aufgabe 43 - Exception Handling 29.4 Aufgabe 44 - Eigene Exception 29.5 Aufgabe 45 - Generics 30 Übungsaufgaben Teil 11 30.1 Aufgabe 46 - HashSet 30.2 Aufgabe 47 - Maps 30.3 Aufgabe 48 - Streams 30.4 Aufgabe 49 - Lambda 30.5 Aufgabe 50 - Projektmitarbeit 31 Exkurs - Zusammenhänge 31.1 Die Grundidee 31.2 Arrays 31.3 Verkettete Listen 31.4 ArrayList 31.5 LinkedList 31.6 Link-Arrays 31.7 Zusammenfassung 32 Exkurs - Sammlungen (collection) 32.1 Warum braucht man Sammlungen? 32.2 Wichtige Sammlungen in Java 32.3 Sammlungen und Arrays 32.4 Zusammenhang mit obigen 33 Exkurs - NoSQL? 33.1 Vergleich 33.2 Objekte als Werte 33.3 Historischer Zusammenhang 34 Themenindex 35 Literatur H Staud U