1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
---
author: Florian Fischer
theme: Rochester
aspectratio: 169
header-includes: |
\usepackage{bm}
\usepackage{tikz}
\usetikzlibrary{calc, arrows.meta, decorations.text}
---
```{.include}
slides-einfuehrung.md
```
## Arbeitsauftrag
Arbeitszeit: 7min
Öffne den workspace `Schuelerakte` in der Online-IDE.
* Aufgabe 1: Vervollständige die Methode `ZusammenfassungAusgeben` in der Klasse `SCHUELER`.
* Aufgabe 2: Vervollständige die Methode `SpitznameSetzen` in der Klasse `SCHUELER`.
* Aufgabe 3: Vervollständige die Methode `NotenschnittSetzen` in der Klasse `SCHUELER`. Und merke dir deine Beobachtungen.
```{.include}
slides-erarbeitung.md
```
## Bank
{.center}
## Bank Modellierung
\begin{tikzpicture}[
class/.style={
draw,
rectangle,
minimum width={width("Hacker")},
font=\small}]
\node[class] (kunde) at (0,2) {Kunde};
\node[class] (hacker) at (0,0) {Hacker};
\draw[arrows={Stealth[inset=0pt, length=10pt, angle'=60, open]-}] (kunde.south) edge[midway, right] node {\small ist} (hacker.north);
\node[class] (bank) at (4.5,1) {Bank};
\draw(kunde.east) edge[midway, sloped, align=center] node {\small < bedient \\ \small hat Konto bei > } (bank.west);
\node[class] (karte) at (4.5, 4) {Karte};
\draw[postaction={decorate,decoration={raise=0.75ex,text along path,text align=center,text={|\small| < geh{\"o}rt}}}] (kunde.east) to [bend left=25] (karte.west);
\draw[postaction={decorate,decoration={raise=-2ex,text along path,text align=center,text={|\small| besitzt >}}}] (kunde.east) to [bend left=25] (karte.west);
\draw (bank) edge[align=center] node[rotate=90] {\small gibt aus > \\ \small < weist auf} (karte);
\node[class] (konto) at (9,1) {Konto};
\draw (bank) edge[midway, align=center] node {\small verwaltet > \\ \small < wird verwaltet} (konto);
\end{tikzpicture}
## Arbeitsauftrag
::: columns
:::: {.column}

::::
:::: column

::::
:::
## Arbeitsauftrag
Arbeitszeit: 30min
* **Aufagbe 0**: Untersuche die Klasse `Bank` und `Konto` auf fehlende Datenkapselung.
* **Aufgabe 1**: Ergänze die Methode `kontoAufloesen` in der Klasse `Kunde`.
* **Aufagbe 2**: Ergänze die Methoden `erfindeGeld` in der Klasse `Hacker`.
* **Zusatzaufgaben**: Im Quellcode sind 3 zusätzliche Aufgaben ausgewiesen.
Happy Hacking :)
## Arbeitsauftrag 2
Stelle dir vor, du wurdest von der Bank beauftragt, ihre Software abzusichern. {width=1cm}
* **Aufgabe 3**: Ergänze die Klassen `Bank` und `Konto` um die Methoden `Hacker:erfindeGeld`{.java} zu verhindern.
* **Aufgabe 4**: Ergänze die Klassen `Bank` um die Methoden `kontoAufloesen(Karte karte)`{.java} die alle benötigten Schritte ausführt um ein Konto vollständig aufzulösen.
### Tipp
Verwende den Grundsatz der **Datenkapselung** sowie das geeignete Java Schlüsselwort.
|