aboutsummaryrefslogtreecommitdiff
path: root/Info/10/2/Aufgaben/Datenkapselung_Microblogging.tex
blob: 9abcaec8bf9a8bf70cffdc9fe0a004a11b541c3c (plain)
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
\renewcommand{\Verteilung}{3 + 2} %%Anzahl der Punkte festlegen

\begin{Aufg}

\textbf{a)} Beschreibe in eigenen Worten die beiden Aspekte des Grundsatzes der Datenkapselung und wie dies in der Programmiersprache Java umgesetzt wird.

\iflehrer{}{\liniert[8mm]{5}}

\noindent \textbf{b)} Markiere in folgendem Programmcode die Stellen, an denen der Grundsatz der Datenkapselung \underline{nicht} umgesetzt wurde und begründe kurz warum.

\begin{minted}[linenos, xleftmargin=1.6em]{java}
public class Benutzeraccount {
  public String benutzername;
  private String[] posts;

  public Benutzeraccount(String neuerNutzer) {
    benutzername = neuerNutzer;
  }

  private String[] gibPosts() {
    return posts;
  }
}
\end{minted}
\end{Aufg}

\begin{Lsg}[A1; Kommunizieren, begründen]
a)
\begin{itemize}
\setlength\itemsep{0.1em}
  \item Nur Klasse sollte Zugriff auf ihre Attribute haben \BE{1}
  \item Zugriff sollte über Methoden der Klasse gewährt werden \BE{1}
  \item Umsetzung in Java
  \begin{itemize}
    \setlength\itemsep{0.1em}
    \item private - Nur Zugriff aus Klasse \BE{1}
    \item public - Uneingeschränkter Zugriff
  \end{itemize}
\end{itemize}

b) \iftoggle{erwartungshorizont}{Halber BE für richtige Zeile; Halber BE für Begründung}{}
\begin{itemize}
  \setlength\itemsep{0.1em}
  \item Zeile 2: benutzername ist public $\rightarrow$ Uneingeschränkter Zugriff \BE{1}
  \item Zeile 9: gibPosts ist private $\rightarrow$ Keine Möglichkeit an die Posts zu kommen \BE{1}
\end{itemize}
\end{Lsg}