Phase 2 – Objektorientierte Programmierung (2–3 Monate)
Klassen, Objekte, Attribute und Methoden
- Klassenstruktur
- Objektinstanziierung
- Verwendung von this
- Best Practices: Namensgebung, Code-Organisation
Encapsulation, Vererbung, Polymorphismus und Abstraktion
- Encapsulation: private, getters/setters, Validierung
- Inheritance: extends, overriding (@Override)
- Polymorphism: Subtyp, method overloading
- Abstraction: Überblick, Vorbereitung auf Interfaces und abstrakte Klassen
Interfaces und abstrakte Klassen
- Interfaces: implements, default methods
- Abstract classes: abstrakte und konkrete Methoden
- Unterschiede zwischen Interface und abstrakter Klasse
Konstruktoren, Initialisierer und statische Blöcke
- Standard- und parametrisierte Konstruktoren, Aufrufe mit this()
- Initialisierungsblöcke ({}) und statische Blöcke (static {})
Enumerationen
- Erstellen und Verwenden von enum
- Methoden und Attribute in enums
Grundlegende Collections
- ArrayList: Hinzufügen, Entfernen, Iteration (for, forEach, Iterator)
- HashMap: key-value, gängige Operationen
- HashSet: Entfernung von Duplikaten
- Einführung in Queue und Stack (z. B. LinkedList als queue/stack)
- Einführung in das Java Collections Framework
Grundlegende Algorithmen
- Lineare und binäre Suche
- Sorting: Bubble Sort, Collections.sort()
- Recursion: Konzepte und einfache Beispiele (z. B. Faktorielle, Fibonacci)
- Einführung in Komplexität (O(n), O(log n))
Generics
- Syntax (), generische Collections, generische Methoden
- Bounds (extends, super)
Stream API (Einführung)
- Grundlegende Operationen: filter, map, collect
- Beispiele mit ArrayList
Unit Testing (Einführung)
- Grundlegende Verwendung von JUnit
- Schreiben von Testfällen für Klassen und Methoden
- Einführung in TDD (Test-Driven Development)
Abschlussprojekt
- Bibliothekssystem
- Klassen: Book, User, Library
- Vererbung: DigitalBook und PhysicalBook
- Collections: ArrayList für Bücher, HashMap für Ausleihen
- Encapsulation: Datenvalidierung
- Git: Commit pro Feature (z. B.
feature/book-management
)
- Veröffentlichung auf GitHub mit erklärendem README
Aktualisierte Ressourcen