forked from pr2-lecture/uebungen
Update of exercises
parent
175c7303b6
commit
741e9b4482
|
@ -1,6 +1,6 @@
|
||||||
# Abstrakte Klassen
|
# Abstrakte Klassen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine abstrakte Klasse einsetzen, um eine einheitliche Schnittstelle für unterschiedliche Klassen anzubieten.
|
Eine abstrakte Klasse einsetzen, um eine einheitliche Schnittstelle für unterschiedliche Klassen anzubieten.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Abstrakte Klasse
|
# Abstrakte Klasse
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Abstrakte Klasse verwenden.
|
Abstrakte Klasse verwenden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# String in Großbuchstaben umwandeln
|
# String in Großbuchstaben umwandeln
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
* Daten von der Kommandozeile lesen.
|
* Daten von der Kommandozeile lesen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Labeled Break
|
# Labeled Break
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Ein labeled break verwenden.
|
Ein labeled break verwenden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Passwortbewertung
|
# Passwortbewertung
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einfache String-Verarbeitung.
|
Einfache String-Verarbeitung.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# printf mit Formatstring
|
# printf mit Formatstring
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Formatierung mit Formatstrings.
|
Formatierung mit Formatstrings.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Maximum in einem Array suchen
|
# Maximum in einem Array suchen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Über Arrays iterieren.
|
Über Arrays iterieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Taschenrechner
|
# Taschenrechner
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
`case` verwenden.
|
`case` verwenden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Ausnahmen testen
|
# Ausnahmen testen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Bei einer gegebenen Klasse Testfälle mit JUnit schreiben, die auf das Werfen von Ausnahmen testen.
|
Bei einer gegebenen Klasse Testfälle mit JUnit schreiben, die auf das Werfen von Ausnahmen testen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Eigene Ausnahmen schreiben und an entsprechender Stelle werfen
|
# Eigene Ausnahmen schreiben und an entsprechender Stelle werfen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Ausnahmen programmieren und sinnvoll einsetzen. Bedeutung der Schlüsselwörter `throws` und `throw` verstehen.
|
Ausnahmen programmieren und sinnvoll einsetzen. Bedeutung der Schlüsselwörter `throws` und `throw` verstehen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Eigene Exception schreiben
|
# Eigene Exception schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eigene Exceptions entwerfen und verwenden.
|
Eigene Exceptions entwerfen und verwenden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Handle-or-Declare-Regel anwenden
|
# Handle-or-Declare-Regel anwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
In einem vorhandenen Programm die Ausnahmen korrekt weiter deklarieren und an den richtigen Stellen fangen.
|
In einem vorhandenen Programm die Ausnahmen korrekt weiter deklarieren und an den richtigen Stellen fangen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Ausnahmen mit `try` und `catch` behandeln.
|
# Ausnahmen mit `try` und `catch` behandeln.
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Vorhandene Ausnahmen mit `try` und `catch` abfangen und behandeln.
|
Vorhandene Ausnahmen mit `try` und `catch` abfangen und behandeln.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Iterator schreiben
|
# Iterator schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Für eine gegebene Klasse einen Iterator schreiben.
|
Für eine gegebene Klasse einen Iterator schreiben.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Iterator programmieren
|
# Iterator programmieren
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Iteratoren verstehen und programmieren.
|
Iteratoren verstehen und programmieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# `List<T>` und dessen Implementierungen
|
# `List<T>` und dessen Implementierungen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Das Interface `List<T>` und eine passende Implementierung einsetzen.
|
Das Interface `List<T>` und eine passende Implementierung einsetzen.
|
||||||
|
@ -11,7 +11,7 @@ Gehen Sie in das Paket [pr2.collections.list](../sources/src/main/java/pr2/colle
|
||||||
|
|
||||||
Im Projekt finden Sie die Klasse `WordCollector` mit deren Hilfe man die Wörter in einem Text analysieren kann. Nach Übergabe eines Dateinamens wird die Datei eingelesen und die vorhandenen Wörter werden gesammelt. Am Ende wird die Liste der Wörter alphabetisch sortiert ausgegeben.
|
Im Projekt finden Sie die Klasse `WordCollector` mit deren Hilfe man die Wörter in einem Text analysieren kann. Nach Übergabe eines Dateinamens wird die Datei eingelesen und die vorhandenen Wörter werden gesammelt. Am Ende wird die Liste der Wörter alphabetisch sortiert ausgegeben.
|
||||||
|
|
||||||
Leider wurde `WordCollector` von einem Entwickler geschrieben, der nichts von dem Collection-Framework wusste und daher alles mit Array realisiert hat. Hierdurch sind einige sehr komplexe Konstruktionen entstanden.
|
Leider wurde `WordCollector` von einem/einer Entwickler:in geschrieben, der nichts von dem Collection-Framework wusste und daher alles mit Array realisiert hat. Hierdurch sind einige sehr komplexe Konstruktionen entstanden.
|
||||||
|
|
||||||
Lassen Sie das Programm laufen und betrachten Sie die Ausgabe. Schauen Sie sich die Klasse `WordCollector` an und versuchen Sie die Funktionsweise und die Implementierung genau zu verstehen. Dieser Schritt ist wichtig, um die im Folgenden beschriebenen Änderungen an der Klasse vornehmen zu können, lassen Sie sich also Zeit für diesen Schritt.
|
Lassen Sie das Programm laufen und betrachten Sie die Ausgabe. Schauen Sie sich die Klasse `WordCollector` an und versuchen Sie die Funktionsweise und die Implementierung genau zu verstehen. Dieser Schritt ist wichtig, um die im Folgenden beschriebenen Änderungen an der Klasse vornehmen zu können, lassen Sie sich also Zeit für diesen Schritt.
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# `Map<T>` verwenden
|
# `Map<T>` verwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Das Interface `Map<T>` und seine Implementierungen verwenden, um Daten effizient zu verarbeiten.
|
Das Interface `Map<T>` und seine Implementierungen verwenden, um Daten effizient zu verarbeiten.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# ReverserGeneric
|
# ReverserGeneric
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
`Comparable` verstehen und nutzen.
|
`Comparable` verstehen und nutzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Strings umgekehrt sortieren: Reverser
|
# Strings umgekehrt sortieren: Reverser
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
`Comparable` verstehen und nutzen.
|
`Comparable` verstehen und nutzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# `Set<T>` und dessen Implementierungen
|
# `Set<T>` und dessen Implementierungen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Das Interface `Set<T>` und eine passende Implementierung einsetzen.
|
Das Interface `Set<T>` und eine passende Implementierung einsetzen.
|
||||||
|
@ -11,7 +11,7 @@ Gehen Sie in das Paket [pr2.collections.set](../sources/src/main/java/pr2/collec
|
||||||
|
|
||||||
Im Projekt finden Sie die Klasse `WordCollector` mit deren Hilfe man die Wörter in einem Text analysieren kann. Nach Übergabe eines Dateinamens wird die Datei eingelesen und die vorhandenen Wörter werden gesammelt. Am Ende wird die Liste der Wörter alphabetisch sortiert ausgegeben.
|
Im Projekt finden Sie die Klasse `WordCollector` mit deren Hilfe man die Wörter in einem Text analysieren kann. Nach Übergabe eines Dateinamens wird die Datei eingelesen und die vorhandenen Wörter werden gesammelt. Am Ende wird die Liste der Wörter alphabetisch sortiert ausgegeben.
|
||||||
|
|
||||||
Leider wurde `WordCollector` von einem Entwickler geschrieben, der nichts von dem Collection-Framework wusste und daher alles mit Array realisiert hat. Hierdurch sind einige sehr komplexe Konstruktionen entstanden.
|
Leider wurde `WordCollector` von einem/einer Entwickler:in geschrieben, der nichts von dem Collection-Framework wusste und daher alles mit Array realisiert hat. Hierdurch sind einige sehr komplexe Konstruktionen entstanden.
|
||||||
|
|
||||||
Lassen Sie das Programm laufen und betrachten Sie die Ausgabe. Schauen Sie sich die Klasse `WordCollector` an und versuchen Sie die Funktionsweise und die Implementierung genau zu verstehen. Dieser Schritt ist wichtig, um die im Folgenden beschriebenen Änderungen an der Klasse vornehmen zu können, lassen Sie sich also Zeit für diesen Schritt.
|
Lassen Sie das Programm laufen und betrachten Sie die Ausgabe. Schauen Sie sich die Klasse `WordCollector` an und versuchen Sie die Funktionsweise und die Implementierung genau zu verstehen. Dieser Schritt ist wichtig, um die im Folgenden beschriebenen Änderungen an der Klasse vornehmen zu können, lassen Sie sich also Zeit für diesen Schritt.
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# CommandLineSorter
|
# CommandLineSorter
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Sortieren von Collections.
|
Sortieren von Collections.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# CommandLineSorter -- Version 2
|
# CommandLineSorter -- Version 2
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Sortieren von Collections.
|
Sortieren von Collections.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# `Comparator<T>` verwenden und Objekte sortieren
|
# `Comparator<T>` verwenden und Objekte sortieren
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Verschiedene Sortierreihenfolgen durch die Implementierung von `Comparator<T>` realisieren.
|
Verschiedene Sortierreihenfolgen durch die Implementierung von `Comparator<T>` realisieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Wörterbuchprogramm
|
# Wörterbuchprogramm
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Interface `Map` und seine Implementierungen einsetzen.
|
Interface `Map` und seine Implementierungen einsetzen.
|
||||||
|
@ -11,7 +11,7 @@ Gehen Sie in das Paket [pr2.collections.woerterbuch](../sources/src/main/java/pr
|
||||||
|
|
||||||
Schreiben Sie ein einfaches Wörterbuchprogramm, dem man auf der Kommandozeile eine beliebige Anzahl von Wörtern übergeben kann und das dann die entsprechende Übersetzung ausgibt. Die Wörter des Wörterbuchs sollen fest im Programm einprogrammiert sein. Es reicht, wenn Sie einige wenige Wörter vorsehen.
|
Schreiben Sie ein einfaches Wörterbuchprogramm, dem man auf der Kommandozeile eine beliebige Anzahl von Wörtern übergeben kann und das dann die entsprechende Übersetzung ausgibt. Die Wörter des Wörterbuchs sollen fest im Programm einprogrammiert sein. Es reicht, wenn Sie einige wenige Wörter vorsehen.
|
||||||
|
|
||||||
Berücksichtigen Sie bitte den Fall, dass der Benutzer kein Wort auf der Kommandozeile angibt bzw. dass ein Wort nicht im Wörterbuch vorhanden ist.
|
Berücksichtigen Sie bitte den Fall, dass der/die Benutzer:in kein Wort auf der Kommandozeile angibt bzw. dass ein Wort nicht im Wörterbuch vorhanden ist.
|
||||||
|
|
||||||
```console
|
```console
|
||||||
> java Woerterbuch
|
> java Woerterbuch
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Java-Coding-Standard anwenden
|
# Java-Coding-Standard anwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Java-Code korrekt entsprechend dem [Coding-Standard von Oracle](http://www.oracle.com/technetwork/java/codeconventions-150003.pdf) formatieren.
|
Java-Code korrekt entsprechend dem [Coding-Standard von Oracle](http://www.oracle.com/technetwork/java/codeconventions-150003.pdf) formatieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# JavaDoc schreiben
|
# JavaDoc schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine vorhandene Klasse mit korrekten JavaDoc-Kommentaren versehen.
|
Eine vorhandene Klasse mit korrekten JavaDoc-Kommentaren versehen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Klasse mit JUnit testen
|
# Klasse mit JUnit testen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen JUnit-Test für eine gegebene Klasse schreiben.
|
Einen JUnit-Test für eine gegebene Klasse schreiben.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Eigene Enumeration schreiben und verwenden
|
# Eigene Enumeration schreiben und verwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine einfache Enumeration (ohne abstrakte Methoden) erstellen und in einem kleinen Programm einsetzen.
|
Eine einfache Enumeration (ohne abstrakte Methoden) erstellen und in einem kleinen Programm einsetzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Enumeration schreiben
|
# Enumeration schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine einfache Enumeration (ohne abstrakte Methoden) erstellen und in einem kleinen Programm einsetzen.
|
Eine einfache Enumeration (ohne abstrakte Methoden) erstellen und in einem kleinen Programm einsetzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Singleton-Eigenschaft von Enumerationen
|
# Singleton-Eigenschaft von Enumerationen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Die Singleton-Eigenschaft von Enumerationen verstehen.
|
Die Singleton-Eigenschaft von Enumerationen verstehen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Assignment: Stein, Papier, Schere, Echse, Spock
|
# Assignment: Stein, Papier, Schere, Echse, Spock
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Mit Enumerationen arbeiten.
|
Mit Enumerationen arbeiten.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Einen generischen Typ schreiben
|
# Einen generischen Typ schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen vorhandenen Typ so umgestalten, dass er als generischer Typ verwendet werden kann.
|
Einen vorhandenen Typ so umgestalten, dass er als generischer Typ verwendet werden kann.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Generische Klasse Pair schreiben
|
# Generische Klasse Pair schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Von einem generischen Typ erben.
|
Von einem generischen Typ erben.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Generische Klasse Pair erweitern: NumberPair
|
# Generische Klasse Pair erweitern: NumberPair
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Von einem generischen Typ erben.
|
Von einem generischen Typ erben.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Generische Klasse Pair erweitern: SamePair
|
# Generische Klasse Pair erweitern: SamePair
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Von einem generischen Typ erben.
|
Von einem generischen Typ erben.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# PairList
|
# PairList
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Sammlungen von Objekten eines generischen Typs erstellen.
|
Sammlungen von Objekten eines generischen Typs erstellen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Wildcard benutzen
|
# Wildcard benutzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Wildcards einsetzen.
|
Wildcards einsetzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Generische Queue
|
# Generische Queue
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen komplexeren generischen Typ entwickeln.
|
Einen komplexeren generischen Typ entwickeln.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# `super` und `extends` einsetzen
|
# `super` und `extends` einsetzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Methoden unter Verwendung von `super` und `extends` gestalten, sodass sie flexibel auch mit Sub- bzw. Supertypen umgehen können.
|
Methoden unter Verwendung von `super` und `extends` gestalten, sodass sie flexibel auch mit Sub- bzw. Supertypen umgehen können.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Generische Typen zusammen mit Wildcards einsetzen
|
# Generische Typen zusammen mit Wildcards einsetzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Gebundene und ungebundene Wildcards einsetzen.
|
Gebundene und ungebundene Wildcards einsetzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# MatrixSuche
|
# MatrixSuche
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Statische innere Klassen einsetzen.
|
Statische innere Klassen einsetzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Innere Klasse Beobachter
|
# Innere Klasse Beobachter
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Zugriff von inneren Klassen auf die umgebende Klasse.
|
Zugriff von inneren Klassen auf die umgebende Klasse.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Callback mit anonymer Klasse realisieren
|
# Callback mit anonymer Klasse realisieren
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine gegebene Funktion durch einen Callback parametrieren. Der Callback wird als anonyme innere Klasse realisiert.
|
Eine gegebene Funktion durch einen Callback parametrieren. Der Callback wird als anonyme innere Klasse realisiert.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# `BufferedReader` zum zeilenweisen Lesen einsetzen
|
# `BufferedReader` zum zeilenweisen Lesen einsetzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten Zeilenweise mit einem `BufferedReader` verwenden und dabei das Decorator Pattern einsetzen.
|
Daten Zeilenweise mit einem `BufferedReader` verwenden und dabei das Decorator Pattern einsetzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# DataOutputStream
|
# DataOutputStream
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten mit einem `DataOutputStreams` manuell serialisieren.
|
Daten mit einem `DataOutputStreams` manuell serialisieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# DataOutputStream durch Serialisierung ersetzen
|
# DataOutputStream durch Serialisierung ersetzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten mit einem `ObjectOutputStreams` serialisieren.
|
Daten mit einem `ObjectOutputStreams` serialisieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Daten mit `DataOutputStream` und `DataInputStream` verarbeiten
|
# Daten mit `DataOutputStream` und `DataInputStream` verarbeiten
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Ein eigenes Format für die Daten einer Klasse definieren und diese Dann in einer Datei speichern und aus dieser wieder laden.
|
Ein eigenes Format für die Daten einer Klasse definieren und diese Dann in einer Datei speichern und aus dieser wieder laden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Daten mit einem `InputStream` lesen
|
# Daten mit einem `InputStream` lesen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen `InputStream` benutzen, um Daten aus einer Datei zu lesen.
|
Einen `InputStream` benutzen, um Daten aus einer Datei zu lesen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Daten mit einem `OutputStream` schreiben
|
# Daten mit einem `OutputStream` schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen `OutputStream` verwenden, um Daten zu schreiben.
|
Einen `OutputStream` verwenden, um Daten zu schreiben.
|
||||||
|
@ -11,7 +11,7 @@ Gehen Sie in das Paket [pr2.io.datei_schreiben](../sources/src/main/java/pr2/io/
|
||||||
|
|
||||||
In dieser Aufgabe sollen Sie eine Reihe von Bytes in eine Datei schreiben. Ein JUnit-Test wird überprüfen, ob Sie dies richtig getan haben.
|
In dieser Aufgabe sollen Sie eine Reihe von Bytes in eine Datei schreiben. Ein JUnit-Test wird überprüfen, ob Sie dies richtig getan haben.
|
||||||
|
|
||||||
Öffnen Sie einen passenden `OutputStream`, um in die Datei `output/daten.dat` zu schreiben (verwenden Sie die Konstante `FILE` für den Dateinamen). Schreiben Sie nun die Byte-Folge
|
Öffnen Sie einen passenden `OutputStream`, um in die, die Ihnen als Kommandozeilenargument übergeben wird, zu schreiben. Schreiben Sie nun die Byte-Folge
|
||||||
|
|
||||||
```console
|
```console
|
||||||
0xca 0xff 0xfe 0xba 0xbe 0x0 0xde 0xad 0xbe 0xef
|
0xca 0xff 0xfe 0xba 0xbe 0x0 0xde 0xad 0xbe 0xef
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Filesystem-Abstraktion mit `File`
|
# Filesystem-Abstraktion mit `File`
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Die Klasse `Path` einsetzen, um plattformunabhängig Operationen auf dem Dateisystem durchzuführen.
|
Die Klasse `Path` einsetzen, um plattformunabhängig Operationen auf dem Dateisystem durchzuführen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Fileattribute lesen
|
# Fileattribute lesen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Methoden der Klassen `Path` und `Files` nutzen und verstehen.
|
Methoden der Klassen `Path` und `Files` nutzen und verstehen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# `FilterReader`
|
# `FilterReader`
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen eigenen Filter in Form eines `FilterReaders` programmieren und hiermit in den Datenstrom eingreifen.
|
Einen eigenen Filter in Form eines `FilterReaders` programmieren und hiermit in den Datenstrom eingreifen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Konsolen Input/Output
|
# Konsolen Input/Output
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten von der Konsole lesen und über eine Ausgabeumlenkung in eine Datei umlenken. `PrintStream` und `InputStreamReader` einsetzen.
|
Daten von der Konsole lesen und über eine Ausgabeumlenkung in eine Datei umlenken. `PrintStream` und `InputStreamReader` einsetzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Zeilen einer Textdatei zählen
|
# Zeilen einer Textdatei zählen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Dateien zeilenweise lesen und verarbeiten.
|
Dateien zeilenweise lesen und verarbeiten.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# `RandomAccessFile`
|
# `RandomAccessFile`
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
`RandomAccessFile` sowohl zum Lesen, als auch zum Schreiben von Daten einsetzen. Verstehen, dass man sich wahlfrei durch die Datei bewegen kann.
|
`RandomAccessFile` sowohl zum Lesen, als auch zum Schreiben von Daten einsetzen. Verstehen, dass man sich wahlfrei durch die Datei bewegen kann.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# `Reader` verwenden
|
# `Reader` verwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Textdaten mithilfe von `Reader` verarbeiten.
|
Textdaten mithilfe von `Reader` verarbeiten.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Rot13-Verschlüsselung
|
# Rot13-Verschlüsselung
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Funktionsweise und Einsatz von Filtern.
|
Funktionsweise und Einsatz von Filtern.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Datei zerhacken
|
# Datei zerhacken
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten byteweise aus einem Stream lesen.
|
Daten byteweise aus einem Stream lesen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Serialisierung
|
# Serialisierung
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Serialisierung einsetzen können, um Objekte zu persistieren und wieder zu laden.
|
Serialisierung einsetzen können, um Objekte zu persistieren und wieder zu laden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Comparable implementieren
|
# Comparable implementieren
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Klasse "comparable" machen.
|
Klasse "comparable" machen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Interface Stack entwerfen
|
# Interface Stack entwerfen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Ein Interface entwerfen und dieses dann implementieren.
|
Ein Interface entwerfen und dieses dann implementieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Interface: Uebersetzer
|
# Interface: Uebersetzer
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Ein Interface implementieren.
|
Ein Interface implementieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Interfaces anwenden und entwerfen
|
# Interfaces anwenden und entwerfen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Ein vorhandenes Interface implementieren und ein eigenes Interface programmieren. Klassen schreiben, die mehrere Interfaces implementieren. Die Kollision von gleichnamigen Interface-Methoden und deren Konsequenzen verstehen.
|
Ein vorhandenes Interface implementieren und ein eigenes Interface programmieren. Klassen schreiben, die mehrere Interfaces implementieren. Die Kollision von gleichnamigen Interface-Methoden und deren Konsequenzen verstehen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# StringTransmogrifier
|
# StringTransmogrifier
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Funktionale Interfaces entwerfen und verwenden.
|
Funktionale Interfaces entwerfen und verwenden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# StringTransmogrifier erweitern
|
# StringTransmogrifier erweitern
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Funktionale Interfaces entwerfen und verwenden.
|
Funktionale Interfaces entwerfen und verwenden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Deep-Copy mit `clone()`
|
# Deep-Copy mit `clone()`
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Den Nutzen der `clone()`-Methode verstehen und diese richtig einsetzen. Eine eigene `clone()`-Methode schreiben und eine tiefe Kopie durchführen.
|
Den Nutzen der `clone()`-Methode verstehen und diese richtig einsetzen. Eine eigene `clone()`-Methode schreiben und eine tiefe Kopie durchführen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Clone
|
# Clone
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Den Nutzen der `clone()`-Methode verstehen und diese richtig einsetzen. Eine eigene `clone()`-Methode schreiben und eine tiefe Kopie durchführen.
|
Den Nutzen der `clone()`-Methode verstehen und diese richtig einsetzen. Eine eigene `clone()`-Methode schreiben und eine tiefe Kopie durchführen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# `equals()` und `hashCode()` implementieren und nutzen
|
# `equals()` und `hashCode()` implementieren und nutzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Die Methoden `equals()` und `hashCode()` der Klasse `Object` korrekt überschreiben und nutzen.
|
Die Methoden `equals()` und `hashCode()` der Klasse `Object` korrekt überschreiben und nutzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# equals und hashCode
|
# equals und hashCode
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Die Methoden `equals()` und `hashCode()` der Klasse `Object` korrekt überschreiben und nutzen.
|
Die Methoden `equals()` und `hashCode()` der Klasse `Object` korrekt überschreiben und nutzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# `toString()`-Methode implementieren
|
# `toString()`-Methode implementieren
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Klassen mit einer `toString()`-Methode versehen und diese gegenseitig nutzen.
|
Klassen mit einer `toString()`-Methode versehen und diese gegenseitig nutzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Optimierung bei Integer
|
# Optimierung bei Integer
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Wrapper-Klassen und deren Optimierungen verstehen.
|
Wrapper-Klassen und deren Optimierungen verstehen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Methoden der Wrapper-Klassen
|
# Methoden der Wrapper-Klassen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Wrapper-Klassen nutzen, um Zahlen umzuwandeln.
|
Wrapper-Klassen nutzen, um Zahlen umzuwandeln.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Kleinbuchstaben in einem String zählen
|
# Kleinbuchstaben in einem String zählen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Streams verwenden.
|
Streams verwenden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Buchstaben in einer Liste von Strings zählen
|
# Buchstaben in einer Liste von Strings zählen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Streams verwenden.
|
Streams verwenden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Kleinbuchstaben in einem String zählen
|
# Kleinbuchstaben in einem String zählen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Streams verwenden.
|
Streams verwenden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Liste filtern
|
# Liste filtern
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten in Streams filtern.
|
Daten in Streams filtern.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Streams mit interner Iteration
|
# Streams mit interner Iteration
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen Stream mit einer internen Iteration verwenden. Die Iteration sowohl mit einem Lambda, als auch mit einer Methodenreferenz durchführen.
|
Einen Stream mit einer internen Iteration verwenden. Die Iteration sowohl mit einem Lambda, als auch mit einer Methodenreferenz durchführen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Map und Filter auf Streams
|
# Map und Filter auf Streams
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen Stream durch Map- und Filter-Operationen analysieren und gewünschte Daten extrahieren.
|
Einen Stream durch Map- und Filter-Operationen analysieren und gewünschte Daten extrahieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Map und Reduce auf Streams
|
# Map und Reduce auf Streams
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Die Daten in einem Stream durch Map- und Reduce verdichten.
|
Die Daten in einem Stream durch Map- und Reduce verdichten.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Reduce
|
# Reduce
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten in Streams mit `reduce` aggregieren.
|
Daten in Streams mit `reduce` aggregieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Summe über reduce bestimmen
|
# Summe über reduce bestimmen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten in Streams mit `reduce` aggregieren.
|
Daten in Streams mit `reduce` aggregieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Wörter zählen
|
# Wörter zählen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten in Streams mit `reduce` aggregieren.
|
Daten in Streams mit `reduce` aggregieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Information-Hiding einer Klasse verbessern
|
# Information-Hiding einer Klasse verbessern
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Bei einer vorhandenen Klasse Information Hiding verbessern und Seiteneffekte reduzieren.
|
Bei einer vorhandenen Klasse Information Hiding verbessern und Seiteneffekte reduzieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Vorhandene Bibliotheken als JAR einbinden
|
# Vorhandene Bibliotheken als JAR einbinden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine vorhandene Bibliothek in einem Projekt verwenden und hierzu ein JAR einbinden.
|
Eine vorhandene Bibliothek in einem Projekt verwenden und hierzu ein JAR einbinden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Fakultät parallel berechnen
|
# Fakultät parallel berechnen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Berechnungen parallelisieren.
|
Berechnungen parallelisieren.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Thread per interrupt beenden
|
# Thread per interrupt beenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Threads kontrolliert beenden.
|
Threads kontrolliert beenden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# wait und notify benutzen
|
# wait und notify benutzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Thread-Koordination über Condition-Variablen.
|
Thread-Koordination über Condition-Variablen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Parallele Ausgaben erzeugen
|
# Parallele Ausgaben erzeugen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Erste Schritte mit Threads.
|
Erste Schritte mit Threads.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Race-Condition finden und beheben
|
# Race-Condition finden und beheben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
In einem gegebenen Programm Race-Conditions finden und durch den Einsatz von kritischen Abschnitten beheben.
|
In einem gegebenen Programm Race-Conditions finden und durch den Einsatz von kritischen Abschnitten beheben.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Stack und Heap unterscheiden
|
# Stack und Heap unterscheiden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Unterschied zwischen Stack und Heap bei parallelen Programmen verstehen.
|
Unterschied zwischen Stack und Heap bei parallelen Programmen verstehen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# synchronized verwenden
|
# synchronized verwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Schlüsselwort `synchronized` verwenden.
|
Schlüsselwort `synchronized` verwenden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Timer und TimerTask verwenden
|
# Timer und TimerTask verwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Klassen aus `java.util.concurrent` verwenden.
|
Klassen aus `java.util.concurrent` verwenden.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Final anwenden
|
# Final anwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Das Schlüsselwort `final` in seinen verschiedenen Bedeutungen kennenlernen und syntaktisch an die richtigen Stellen schreiben.
|
Das Schlüsselwort `final` in seinen verschiedenen Bedeutungen kennenlernen und syntaktisch an die richtigen Stellen schreiben.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Figur und Rechteck
|
# Figur und Rechteck
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Vererbung sinnvoll einsetzen.
|
Vererbung sinnvoll einsetzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Figur erweitern
|
# Figur erweitern
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Vererbung sinnvoll einsetzen.
|
Vererbung sinnvoll einsetzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Figur noch einmal erweitern
|
# Figur noch einmal erweitern
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Vererbung sinnvoll einsetzen.
|
Vererbung sinnvoll einsetzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Konstruktoren schreiben
|
# Konstruktoren schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Für eine vorhandene Klasse Konstruktoren schreiben und Konstruktoren sich gegenseitig und auch Konstruktoren der Superklasse aufrufen lassen.
|
Für eine vorhandene Klasse Konstruktoren schreiben und Konstruktoren sich gegenseitig und auch Konstruktoren der Superklasse aufrufen lassen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Polymorphie einsetzen
|
# Polymorphie einsetzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Durch Polymorphie Subklassen wie Basisklassen behandeln können.
|
Durch Polymorphie Subklassen wie Basisklassen behandeln können.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Singleton
|
# Singleton
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Das Design-Pattern _Singleton_ einsetzen.
|
Das Design-Pattern _Singleton_ einsetzen.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Statische Methoden und Attribute
|
# Statische Methoden und Attribute
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine Klasse mit statischen Attributen und Methoden entwickeln und die Unterschiede zu normalen Methoden und Attributen verstehen.
|
Eine Klasse mit statischen Attributen und Methoden entwickeln und die Unterschiede zu normalen Methoden und Attributen verstehen.
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue