You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Hint: Metoden kan implementeres i superklassen FileSystemElement<br />
og redefineres i subklassen Directory; eller den kan erklæres abstract<br />
i superklassen og (re-)defineres i begge subklasser.<br />
5.2 Implementering af klassemodeller<br />
Opgave 5.2.1<br />
I denne opgave skal du modellere (en lille med vigtig del af) et system til en<br />
bank. I en bank er der blandt andet konti (Account) ogkunder (Customer).<br />
I denne bank er alle konti ejet af præcis én kunde, og det er muligt for en<br />
kunde (kortvarigt) ikke at eje nogle konti.<br />
• Det skal selvfølgelig være muligt at indbetale penge på og hæve penge<br />
fra en konto (mutatorer). Det skal også være muligt at få oplyst saldoen<br />
på en konto (accessor).<br />
• For kunder skal det være muligt at ændre deres navn og adresse uafhængigt.<br />
• Når en ny konto åbnes skal det specificeres hvem ejeren er (husk, at<br />
en konto ikke kan eksistere uden en ejer). Det er derimod valgfrit at<br />
opgive en startsaldo; hvis ingen startsaldo bliver givet, bliver den sat til<br />
nul. (Der skal altså være to konstruktører: én, der tager et argument af<br />
typen Customer og én, der tager to argumenter, en af type Customer<br />
og en af typen int).<br />
• Når en kunde oprettes bliver navnet og adressen opgivet, ikke andet.<br />
Ovenstående specifikation kan udtrykkes i et UML klassediagram som følger:<br />
Account<br />
int balance<br />
Customer owner<br />
Account(Customer c)<br />
Account(Customer c, int b)<br />
void deposit(int x)<br />
void withdraw(int x)<br />
int balance()<br />
String toString()<br />
void setOwner(Customer c)<br />
0..* 1<br />
Customer<br />
String name<br />
String address<br />
Customer(String n, String a)<br />
String name()<br />
String address()<br />
void setName(String n)<br />
void setAddress(String a)<br />
String toString()<br />
51