\documentclass{bschlangaul-aufgabe}
\bLadePakete{uml,java}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Klassendiagramm und Programmierung},
  Thematik = {Hunde},
  Referenz = OOMUP.Diagramme.Struktur.Klassendiagramm.Hunde,
  RelativerPfad = Module/20_OOMUP/Diagramme/10_Struktur/10_Klassendiagramm/Aufgabe_Hunde.tex,
  ZitatSchluessel = aud:pu:7,
  ZitatBeschreibung = {Aufgabe 15},
  BearbeitungsStand = nur Angabe,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Klassendiagramm, Klasse, Getter-Methode, Setter-Methode, Feld (Array)},
}

\let\j=\bJavaCode

\begin{enumerate}

%%
% (a)
%%

\item Erstelle Sie ein Klassendiagramm zu folgender Aufgabenstellung:
\index{Klassendiagramm}
\footcite[Aufgabe 15]{aud:pu:7}

Es gibt eine Klasse \j{Hund}, von der keine Objekte erzeugt werden
sollen. Jeder Hund hat einen Namen (\j{String}), ein Alter in Jahren
(\j{int}) und ein Gewicht in kg (\j{double}). Jeder Hund kann bellen,
älter werden (um jeweils 1 Jahr), eine gewisse Menge an Hundefutter
fressen und dabei schwerer werden, und Gassi gehen, wobei er wieder an
Gewicht verliert. Hunde sind entweder Chihuahuas, Bernhardiner oder
Schäferhunde. Chihuahuas bellen mit einem wuffwuff, wiegen
durchschnittlich 2 kg, fressen maximal 0,09 kg pro Tag und verlieren ca.
0,04 kg pro Gassi-Gang. Ein Bernhardiner bellt mit einem lauten WAUWAU,
wiegt durchschnittlich 95 kg, frisst maximal 0,5 kg pro Tag und verliert
pro Gassi-Gang ca. 0,2 kg. Bernhardiner tragen eine Glocke um den Hals
oder nicht. Ein Schäferhund bellt mit einem wauwau, wiegt
durchschnittlich 30 kg, frisst maximal 0,3 kg pro Tag und verliert ca.
0,15 kg pro Gassi-Gang. Ein Schäferhund hat die Ausbildung zum
Blindenhund absolviert oder nicht.
\index{Klasse}

%%
% (b)
%%

\item Erstellen Sie nun zunächst die Klasse \j{Hund} mit den oben
angegebenen Attributen und folgenden Methoden:

\begin{itemize}
\item Methode \j{bellen();}

\item Methode \j{altern();}

\item Methode \j{fressen(double futter);}

\item Methode \j{fressen():} Verwendet als Futtermenge die maximale
Menge pro Tag

\item Methode \j{gassiGehen();}
\end{itemize}

%%
% (c)
%%

\item Erstellen Sie nun die Klassen \j{Chihuahua}, \j{Bernhardiner} und
\j{Schaeferhund} mit ihren speziﬁschen Attributen und überschreiben Sie
die in Teilaufgabe b) genannten Methoden.

%%
% (d)
%%

\item Erstellen Sie alle benötigten Getter- und Setter-Methoden.
\index{Getter-Methode}
\index{Setter-Methode}

%%
% (e)
%%

\item Erstellen Sie in einer Klasse \j{Zwinger} ein Hunde-Array
\j{zwinger}, das Platz für zehn Hunde-Objekte hat, und folgende
Methoden:\index{Feld (Array)}

\begin{itemize}
\item Eine Methode \j{belegen()}, die die folgenden vier Hunde in die
ersten vier Zwingerplätze setzt:

\begin{itemize}
\item Chihuahua Tim, 2 Jahre alt, 1,8 kg schwer
\item Blindenhund Alex, 4 Jahre alt, 40 kg schwer
\item Berhardinerin Eva, 5 Jahre alt, 82 kg schwer
\item Schäferhündin Lilli, 3 Jahre alt, 34 kg schwer
\end{itemize}

\item Eine Methode \j{fuettern()}, die alle Hunde im Zwinger mit ihrer
maximalen Futtermenge versorgt.

\item Eine Methode \j{fuetterzeit()}, die alle Hunde im Zwinger bellen
lässt.

\item Eine Methode \j{gassiGehen()}, die alle Hunde im Zwinger Gassi
gehen lässt.

\end{itemize}
\end{enumerate}

\bJavaDatei{aufgaben/oomup/klassendiagramm/hunde/Hund}
\bJavaDatei{aufgaben/oomup/klassendiagramm/hunde/Bernhardiner}
\bJavaDatei{aufgaben/oomup/klassendiagramm/hunde/Chihuahua}
\bJavaDatei{aufgaben/oomup/klassendiagramm/hunde/Schaeferhund}
\bJavaDatei{aufgaben/oomup/klassendiagramm/hunde/Zwinger}

\end{document}
