\begin{slide}{Sichtbarkeiten (I)}

für Methoden und Attribute:
\begin{itemize} 
\item
  public: überall
\item
  (default:) nur im eigenen Package
\item
  private: nur in der eigenen Klasse
\end{itemize}

Das Ziel ist \emph{Datenabstraktion}:
die Methoden der Klasse erfüllen die Spezifikation,
aber wie sie das machen, bleibt Privatsache.

\end{slide}

\begin{slide}{Sichtbarkeiten (II)}

Prinzip:
\begin{itemize}
\item 
  alle Attribute private
\item
  bei Bedarf öffentliche get/set-Methoden 
  (Eclipse, Source, Generate get/set)
\item
  möglichst wenige set-Methoden
\item
  stattdessen Argumente für Konstruktor 
  (Eclipse, Source, Generate Constructor using Fields)
\end{itemize}

\end{slide}

