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
undfilter
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.