Skip to main content

Woche 13: Funktionale Programmierung in Java

Theorie

In dieser Woche lernen wir einige Konzepte aus der funktionalen Programmierung kennen. Zudem lernen wir wie wir diese mit Java umsetzen können.

Selbststudium

Bitte arbeiten Sie die folgenden Lerneinheiten vor den Präsenzveranstaltungen durch.

Präsenzveranstaltung Donnerstag

In der Präsenzveranstaltung werden wir die hier diskutierten Konzepte vertiefen.

Praxis

Präsenzveranstaltung Freitag

In der Präsenzveranstaltung am Freitag werden wir an zwei Beispielen sehen, dass wir die Konzepte, die wir in dieser Vorlesung gelernt haben, auch auf andere Programmiersprachen anwenden können.

Übungen - In der IDE VSCode

In dieser Woche gibt es keine Übungen.

Kernaussagen

  • In der Funktionalen Programmierung liegt der Fokus auf Funktionen, die Daten transformieren.
  • Daten werden in der Funktionalen Programmierung unveränderlich. Jede Änderung wird dadurch erreicht, dass neue Werte erzeugt werden.
  • Funktionen können in Java durch (Funktions-)Objekte mit einer entsprechenden apply Methode simuliert werden.
  • Lambda-Ausdrücke bieten eine praktische/kurze Schreibweise um Funktionsobjekte zu erstellen.
  • Methoden können, genau wie Lambda-Ausdrücke, als Parameter an andere Methoden übergeben werden.
  • Java macht das funktionale Arbeiten mit Listen über die Klasse Streams möglich.

Lernziele

Die Studierenden

  • verstehen, wie man mittels Klassen und Interfaces Funktionsobjekte modelliert.
  • können Beispiele von Problemen nennen, die sich gut mit Funktionaler Programmierung lösen lassen.
  • können Funktionsobjekte mittels Interfaces und Klassen repräsentieren.
  • kennen die Lambda Syntax und können Lambda-Ausdrücke einsetzen.
  • wissen, wie man Methodenreferenzen als Argumente an Methoden übergibt.
  • können Methoden schreiben, die Lambda-Ausdrücke und Methodenreferenzen als Parameter entgegennehmen.
  • können Sequenzen von Elementen mithilfe von Streams und den Methoden map und filter transformieren.

Literaturhinweise

Die hier beschriebenen Konzepte werden auch im Buch "Einführung in das Programmieren mit Java 17" von Bernhard Baltes-Götz und Johannes Götz behandelt.