Agenda

  • Wiederholung
  • variable Argumentlisten
  • Interface
  • Komparator
  • Zusammenfassung

Wiederholung

abstract Modifier

  • abstrakte Klassen
  • abstrakte Methoden

final Modifier

  • finale Klassen
  • finale Methoden

Interfaces

Wie kann man Dogs und Cats in einer Liste speichern?

Wie kann man Baby, Child und Adult in einer Liste speichern?

Wie kann man Dogs, Cats, Baby, Child und Adult in einer Liste speichern?

Limitierungen von abstrakten Klassen

  • komplexe Vererbungshierarchie
  • keine Mehrfachvererbung

Interfaces

  • definieren Methoden
  • werden von Klassen implementiert

Zweck von Interfaces

  • Unabhängig von Vererbung
  • Verstecken von Implementierungsdetails
  • Schnittstelle zwischen Ersteller und Verwender

Ersteller des Warenkorbs

  • Beschreibung anzeigen
  • Einzelpreis ermitteln

Realisierung des Warenkorbs

  • Warenkorb Modul definiert Interface
  • Artikel implementieren das Interface

Demo Interface

  • ShoppingCart
  • Dog und Cat implementieren Interface
  • ToDo Liste
  • Dog und Cat implementieren Interface

weitere Anwendungsgebiete*

  • Dependency Injection
  • Unit Tests

*NKR

Komparatoren

Zweck von Komparatoren

Sortieren von Listen

Funktionsweise

  • Vergleichen von zwei Objekten
  • erstes Element davor einordnen: -1
  • erstes Element dahinter einordnen: 1
  • erstes Element gleich einordnen: 0

Welche Interfaces gibt es?

  • Comparable
  • Comparator

Comparable

  • definiert die Standardsortierung
  • Implementierung in der Datenklasse
  • Bsp. Human nach Alter sortieren

Comparator

  • definiert eine Sortierung
  • Implementierung in eigener Klasse
  • Bsp. AgeComparator, NameComparator

Wie sortiert man eine Liste?

// ...
ArrayList<Human> humans = new ArrayList<>();
Collections.sort(humans);
Collections.sort(humans, new AgeComparator());
// ...

Demo Komparatoren

  • Human Comparable
  • AgeComparator

Zusammenfassung

  • variable Argumentlisten
  • Interfaces
  • Komparatoren

Rest of the day

  • Interfaces 01
  • Comparators 01 - 02