{\small\sf class} $Immatrikulation$
\par
\kInstanceVarDef
\parlinebr
\begin{insvar}\kw{public}
\assdef{ImmatDatum}{Datum}[{\fnapply{Datum`today}{}}]
\end{insvar}
\begin{instinvfn}
\fnapply{ImmatDatum.minus}{stud.Geburtsdatum} \Ge 12\end{instinvfn}
\begin{insvar}\kw{public}
\assdef{MatrikelNummer}{\Natone }
\end{insvar}
\begin{insvar}\kw{public}
\assdef{ExmatDatum}{\Opt{Datum}}[{\Nil }]
\end{insvar}
\begin{instinvfn}
ExmatDatum \Neq \Nil  \Implies \fnapply{ExmatDatum.groesserGleich}{ImmatDatum}\end{instinvfn}
\begin{instinvfn}
ExmatDatum \Neq \Nil  \Implies \fnapply{\fnapply{Datum`today}{}.groesserGleich}{ExmatDatum}\end{instinvfn}
\begin{insvar}\kw{public}
\assdef{istGasthoerer}{\Bool }[{\False }]
\end{insvar}
\begin{insvar}\kw{public}
\assdef{uni}{Universitaet}
\end{insvar}
\begin{instinvfn}
\fnapply{uni.immat}{MatrikelNummer} = \kSelf \end{instinvfn}
\begin{insvar}\kw{public}
\assdef{stud}{Student}
\end{insvar}
\begin{instinvfn}
\kSelf  \In stud.immat\end{instinvfn}
\par
{\small\sf end} {\it Immatrikulation}

