...
Anta at Person-objektet håndterer verdier for navn, fødselsdato og e-post-adresse. Hvert Person-objekt vil ha unike verdier, som leses og settes med egne operasjoner. Før en definerer disse operasjonene må en gi verdiene navn og bestemme hvilken datatype som er logisk for hvert av dem. Datatypene vil vi finne igjen i parameter- og returntypene for getter- og setter-operasjonene. F.eks. kan vi kalle og bruke fullName og String for navnet til personen og det vil gi opphav til operasjonene String getFullName() og void setFullName(String). En mulig innkapsling av disse verdiene er vist under til venstre.
...
PlantUML Macro |
---|
title | Innkapsling av barn variant 1 |
---|
| class Person {
+boolean containsChild(Person)
+Iterator<Person> getChildren()
+void addChild(Person)
+void removeChild(Person)
} |
|
PlantUML Macro |
---|
title | Innkapsling av barn variant 2 |
---|
| class Person {
+int getChildCount()
+int indexOfChild(Person)
+Person getChild(int)
+void addChild(Person)
+void removeChild(Person)
} |
|
PlantUML Macro |
---|
title | Innkapsling av barn variant 3 |
---|
| class Person {
+int getChildCount()
+int getIndexOfChildindexOfChild(Person)
+Person getChild(int)
+void addChild(int, Person)
+void removeChild(int)
} |
|
...
PlantUML Macro |
---|
title | Innkapsling med standardoperasjoner |
---|
| class Account {
int getBalance()
void setBalance(int)
} |
|
PlantUML Macro |
---|
title | Innkapsling med tilpassede operasjoner |
---|
| class Account {
int getBalance()
void deposit(int)
int withdraw(int)
} |
|
...