07.01.2015 Views

Opgaver

Opgaver

Opgaver

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!