Skip to content

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