...
Innkapsling består altså av å definere et sett operasjoner for sikker (og indirekte) tilgang til data, istedenfor å gi direkte tilgang til attributter og dermed lekke detaljer om implementasjonsteknikken til andre klasser. For å gjøre innkapslingen tydelig kan en angi i diagrammer den såkalte synligheten til navn, dvs. hvilke som skal være offentlig (kjent) og hvilke som skal være private. De offentlig skal være mulige å bruke (referere til) utenfor klassen og de private umulige. Dette illustreres med henholdsvis grønne og røde punkter eller + og - foran navnene, som vist i figuren under.
PlantUML Macro | ||||
---|---|---|---|---|
| ||||
class "Person" as Person1 {
-String givenName
-String familyName
+String getGivenName()
+void setGivenName(String givenName)
+String getFamilyName()
+void setFamilyName(String familyName)
}
note top: Synlighet angitt med grønn og rød farge |
PlantUML Macro | ||||
---|---|---|---|---|
| ||||
skinparam classAttributeIconSize 0
class "Person" as Person2 {
-String givenName"
-String familyName
+String getGivenName()
+void setGivenName(String givenName)
+String getFamilyName()
+void setFamilyName(String familyName)
}
note top: Synlighet angitt med + og - |
Tilsvarende tilbyr mange objektorienterte språk mekanismer såkalte synlighetsmodifikatorer for å deklarere hvilke navn som skal være offentlige og private. Alternativ 1 over vil kodes som følger:
...