\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}