You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/additional-material/daniel-java1/sample-exam.md
+9-5Lines changed: 9 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,17 @@ tags: []
7
7
8
8
## Hinweise zur Klausur
9
9
10
-
- Die in dieser Klausur verwendeten Personenbezeichnungen beziehen sich – sofern nicht anders kenntlich gemacht – auf alle Geschlechter
11
-
- Es kann davon ausgegangen werden, dass sämtliche Klassen entsprechende Implementierungen
12
-
der Object-Methoden besitzen
13
-
- Der Stereotyp `<<enumeration>>` impliziert, dass die Aufzählung einen passenden, privaten Konstruktor sowie gegebenenfalls passende Getter für alle Attribute besitzt
10
+
- Die in dieser Klausur verwendeten Personenbezeichnungen beziehen sich – sofern
11
+
nicht anders kenntlich gemacht – auf alle Geschlechter
12
+
- Es kann davon ausgegangen werden, dass sämtliche Klassen entsprechende
13
+
Implementierungen der Object-Methoden besitzen
14
+
- Der Stereotyp `<<enumeration>>` impliziert, dass die Aufzählung einen
15
+
passenden, privaten Konstruktor sowie gegebenenfalls passende Getter für alle
16
+
Attribute besitzt
14
17
- Pakete und Klassenimporte müssen nicht angegeben werden
15
18
- Für die Konsolenausgabe kann das Kürzel _sysout_ verwendet werden
16
-
- Methoden- und Attributsbezeichner dürfen sinnvoll gekürzt geschrieben werden (Beispiel _getLWMCP()_ statt _getLectureWithMostCreditPoints()_)
19
+
- Methoden- und Attributsbezeichner dürfen sinnvoll gekürzt geschrieben werden
Copy file name to clipboardExpand all lines: docs/additional-material/daniel-java2/sample-exam.md
+70-27Lines changed: 70 additions & 27 deletions
Original file line number
Diff line number
Diff line change
@@ -7,18 +7,25 @@ tags: []
7
7
8
8
## Hinweise zur Klausur
9
9
10
-
- Die in dieser Klausur verwendeten Personenbezeichnungen beziehen sich – sofern nicht anders kenntlich gemacht – auf alle Geschlechter
11
-
- Es kann davon ausgegangen werden, dass sämtliche Klassen entsprechende Implementierungen
12
-
der Object-Methoden besitzen
13
-
- Der Stereotyp `<<record>>` impliziert, dass die Datenklasse einen entsprechenden Konstruktor, Getter zu allen Attributen sowie entsprechende Implementierungen der Object-Methoden besitzt
14
-
- Der Stereotyp `<<enumeration>>` impliziert, dass die Aufzählung einen passenden, privaten Konstruktor sowie gegebenenfalls passende Getter für alle Attribute besitzt
10
+
- Die in dieser Klausur verwendeten Personenbezeichnungen beziehen sich – sofern
11
+
nicht anders kenntlich gemacht – auf alle Geschlechter
12
+
- Es kann davon ausgegangen werden, dass sämtliche Klassen entsprechende
13
+
Implementierungen der Object-Methoden besitzen
14
+
- Der Stereotyp `<<record>>` impliziert, dass die Datenklasse einen
15
+
entsprechenden Konstruktor, Getter zu allen Attributen sowie entsprechende
16
+
Implementierungen der Object-Methoden besitzt
17
+
- Der Stereotyp `<<enumeration>>` impliziert, dass die Aufzählung einen
18
+
passenden, privaten Konstruktor sowie gegebenenfalls passende Getter für alle
19
+
Attribute besitzt
15
20
- Pakete und Klassenimporte müssen nicht angegeben werden
16
21
- Für die Konsolenausgabe kann das Kürzel _sysout_ verwendet werden
17
-
- Methoden- und Attributsbezeichner dürfen sinnvoll gekürzt geschrieben werden (Beispiel _testGMPSH()_ statt _testGetMostPowerfulSuperHuman()_)
22
+
- Methoden- und Attributsbezeichner dürfen sinnvoll gekürzt geschrieben werden
Erstelle die JUnit-5-Testklasse `SuperLeagueTest` anhand des abgebildeten Klassendiagramms.
27
+
Erstelle die JUnit-5-Testklasse `SuperLeagueTest` anhand des abgebildeten
28
+
Klassendiagramms.
22
29
23
30
### Klassendiagramm
24
31
@@ -81,18 +88,31 @@ classDiagram
81
88
82
89
### Hinweise zur Klasse SuperLeagueTest
83
90
84
-
- Die Lebenszyklus-Methode `void setUp()` soll das nachfolgende Testszenario aufbauen:
85
-
- Es sollen die Superhelden Superman (DC, Stärke 10), Iron Man (MARVEL, 7) und Spider-Man (MARVEL, 8) erstellt und den entsprechenden Attributen zugewiesen werden
86
-
- Es soll eine MARVEL-Superheldenliga mit dem Namen _Avengers_ erstellt und dem entsprechenden Attribut zugewiesen werden
87
-
- Die Superhelden Iron Man und Spider-Man sollen den Avengers als verfügbaren Superhelden hinzugefügt werden
88
-
- Der Superheld mit dem Namen Spider-Man soll auf eine Mission geschickt werden
89
-
- Die Testmethode `void testAddSuperHuman()` soll prüfen, ob beim Aufruf der Methode `void addSuperHuman(t: T)` auf das Attribut `avengers` mit dem Wert `superman` die Ausnahme `WrongUniverseException` ausgelöst wird
90
-
- Die Testmethode `void testGetAllAvailableSuperHumans()` soll prüfen, ob beim Aufruf der Methode `List<T> getAllAvailableSuperHumans()` auf das Attribut `avengers` eine Liste der Größe 1 zurückgegeben wird
91
-
- Die Testmethode `void testGetMostPowerfulSuperHuman()` soll prüfen, ob beim Aufruf der Methode `Optional<T> getMostPowerfulSuperHuman()` auf das Attribut `avengers` der Superheld Spider-Man als Optional zurückgegeben wird
91
+
- Die Lebenszyklus-Methode `void setUp()` soll das nachfolgende Testszenario
92
+
aufbauen:
93
+
- Es sollen die Superhelden Superman (DC, Stärke 10), Iron Man (MARVEL, 7) und
94
+
Spider-Man (MARVEL, 8) erstellt und den entsprechenden Attributen zugewiesen
95
+
werden
96
+
- Es soll eine MARVEL-Superheldenliga mit dem Namen _Avengers_ erstellt und
97
+
dem entsprechenden Attribut zugewiesen werden
98
+
- Die Superhelden Iron Man und Spider-Man sollen den Avengers als verfügbaren
99
+
Superhelden hinzugefügt werden
100
+
- Der Superheld mit dem Namen Spider-Man soll auf eine Mission geschickt
101
+
werden
102
+
- Die Testmethode `void testAddSuperHuman()` soll prüfen, ob beim Aufruf der
103
+
Methode `void addSuperHuman(t: T)` auf das Attribut `avengers` mit dem Wert
104
+
`superman` die Ausnahme `WrongUniverseException` ausgelöst wird
105
+
- Die Testmethode `void testGetAllAvailableSuperHumans()` soll prüfen, ob beim
106
+
Aufruf der Methode `List<T> getAllAvailableSuperHumans()` auf das Attribut
107
+
`avengers` eine Liste der Größe 1 zurückgegeben wird
108
+
- Die Testmethode `void testGetMostPowerfulSuperHuman()` soll prüfen, ob beim
109
+
Aufruf der Methode `Optional<T> getMostPowerfulSuperHuman()` auf das Attribut
110
+
`avengers` der Superheld Spider-Man als Optional zurückgegeben wird
92
111
93
112
### Hinweis zur Klasse SuperLeague
94
113
95
-
Die Methode `void addSuperHuman(t: T)` kann die Ausnahme `WrongUniverseException` auslösen.
114
+
Die Methode `void addSuperHuman(t: T)` kann die Ausnahme
115
+
`WrongUniverseException` auslösen.
96
116
97
117
### Musterlösung
98
118
@@ -135,7 +155,8 @@ public class SuperLeagueTest { // 0,5
135
155
136
156
## Aufgabe 2 (16 Punkte)
137
157
138
-
Erstelle die Klasse `SuperLeague<T extends SuperHuman>` anhand des abgebildeten Klassendiagrams.
158
+
Erstelle die Klasse `SuperLeague<T extends SuperHuman>` anhand des abgebildeten
159
+
Klassendiagrams.
139
160
140
161
### Klassendiagramm
141
162
@@ -185,11 +206,19 @@ classDiagram
185
206
186
207
### Hinweise zur Klasse SuperLeague<T extends SuperHuman\>
187
208
188
-
- Der Assoziativspeicher `members` beinhaltet als Schlüssel alle Übermenschen der Liga sowie als Wert deren Verfügbarkeit (verfügbar: `true`, nicht verfügbar: `false`)
189
-
- Die Methode `Optional<T> getMostPowerfulSuperHuman()` soll den stärksten Übermenschen der Liga als Optional zurückgeben
190
-
- Die Methode `void addSuperHuman(t: T)` soll der Liga den eingehenden Übermenschen als verfügbares Mitglied hinzufügen. Für den Fall, dass das Universum des eingehenden Übermenschen nicht dem Universum der Liga entspricht, soll die Ausnahme `WrongUniverseException` ausgelöst werden
191
-
- Die Methode `List<T> getAllAvailableSuperHumans()` soll alle verfügbaren Übermenschen der Liga als Liste zurückgeben
192
-
- Die Methode `void sendSuperHumanOnMission(t: T)` soll die Verfügbarkeit des eingehenden Übermenschen auf nicht verfügbar setzen
209
+
- Der Assoziativspeicher `members` beinhaltet als Schlüssel alle Übermenschen
210
+
der Liga sowie als Wert deren Verfügbarkeit (verfügbar: `true`, nicht
211
+
verfügbar: `false`)
212
+
- Die Methode `Optional<T> getMostPowerfulSuperHuman()` soll den stärksten
213
+
Übermenschen der Liga als Optional zurückgeben
214
+
- Die Methode `void addSuperHuman(t: T)` soll der Liga den eingehenden
215
+
Übermenschen als verfügbares Mitglied hinzufügen. Für den Fall, dass das
216
+
Universum des eingehenden Übermenschen nicht dem Universum der Liga
217
+
entspricht, soll die Ausnahme `WrongUniverseException` ausgelöst werden
218
+
- Die Methode `List<T> getAllAvailableSuperHumans()` soll alle verfügbaren
219
+
Übermenschen der Liga als Liste zurückgeben
220
+
- Die Methode `void sendSuperHumanOnMission(t: T)` soll die Verfügbarkeit des
221
+
eingehenden Übermenschen auf nicht verfügbar setzen
193
222
194
223
### Musterlösung
195
224
@@ -286,11 +315,25 @@ classDiagram
286
315
287
316
### Hinweise zur Klasse SingleQueries
288
317
289
-
- Die Methode `void printAllSinglesWithMoreThan25MillionSalesPerCountry()` soll alle Singles, die sich mehr als 25 Millionen mal verkauft haben, gruppiert nach dem Land in der Form _[Land\]: [[Single\], [Single\],...\]_ ausgeben
290
-
- Die Methode `void printAverageBirthYearOfAllDeceasedArtists()` soll das durchschnittliche Geburtsjahr aller verstorbenen Künstler bzw. aller verstorbenen Künstlerinnen ausgeben. Für den Fall, dass es keinen verstorbenen Künstler bzw. keine verstorbene Künstlerin gibt, soll der Wert -1 ausgegeben werden
291
-
- Die Methode `boolean isAnySingleFromChinaWithMoreThan10MillionSales()` soll zurückgeben, ob es eine Single eines Künstlers bzw. einer Künstlerin aus China gibt, welches sich mehr als 10 Millionen Mal verkauft hat
292
-
- Die Methode `List<String> getTop3SinglesOfThisCenturyBySalesInMillions()` soll die 3 am häufigsten verkauften Singles des jetzigen Jahrtausends sortiert nach der Anzahl Verkäufe in Millionen in der Form _[Name der Single\]: [Name des Künstlers bzw. Name der Künstlerin\], [Verkäufe in Millionen\] Millionen_ zurückgeben
293
-
- Die Methode `List<Single> getAllSinglesFromEdSheeran()` soll alle Singles des Künstlers Ed Sheeran (Land: Großbritannien, Geburtstag: 17.02.1991, Status: lebendig) zurückgeben
318
+
- Die Methode `void printAllSinglesWithMoreThan25MillionSalesPerCountry()` soll
319
+
alle Singles, die sich mehr als 25 Millionen mal verkauft haben, gruppiert
320
+
nach dem Land in der Form _[Land\]: [[Single\], [Single\],...\]_ ausgeben
321
+
- Die Methode `void printAverageBirthYearOfAllDeceasedArtists()` soll das
322
+
durchschnittliche Geburtsjahr aller verstorbenen Künstler bzw. aller
323
+
verstorbenen Künstlerinnen ausgeben. Für den Fall, dass es keinen verstorbenen
324
+
Künstler bzw. keine verstorbene Künstlerin gibt, soll der Wert -1 ausgegeben
325
+
werden
326
+
- Die Methode `boolean isAnySingleFromChinaWithMoreThan10MillionSales()` soll
327
+
zurückgeben, ob es eine Single eines Künstlers bzw. einer Künstlerin aus China
328
+
gibt, welches sich mehr als 10 Millionen Mal verkauft hat
329
+
- Die Methode `List<String> getTop3SinglesOfThisCenturyBySalesInMillions()` soll
330
+
die 3 am häufigsten verkauften Singles des jetzigen Jahrtausends sortiert nach
331
+
der Anzahl Verkäufe in Millionen in der Form _[Name der Single\]: [Name des
332
+
Künstlers bzw. Name der Künstlerin\], [Verkäufe in Millionen\] Millionen_
333
+
zurückgeben
334
+
- Die Methode `List<Single> getAllSinglesFromEdSheeran()` soll alle Singles des
335
+
Künstlers Ed Sheeran (Land: Großbritannien, Geburtstag: 17.02.1991, Status:
0 commit comments