De fleste programmer vil bestå av mange klasser, som det vil lages mange instanser av ved kjøring. Disse instansene vil være koblet sammen i et nettverk, også kalt objektgraf, og begreper som tilstand og oppførsel kan generaliseres til å dekke objektgrafer, ikke bare enkeltobjekter. |
Det finnes hovedsaklig to grunner til å lage strukturer av objekter:
I de fleste applikasjoner vil begge disse grunnene for oppdeling i flere klasser være relevante, dvs. en vil ha strukturer av både data- og tjenesteorienterte objekter. Og selv for de minste applikasjonene er det vanlig å i det minste ha en hovedprogramklasse, som håndterer kommunikasjonen med brukeren, og en klasse som håndterer den underliggende logikken og tilbyr dette som en tjeneste til hovedprogramklassen. Se Memory-eksempel versjon 1 for et enkelt eksempel på dette.
Uansett grunnen for å dele et program opp i flere klasser, så vil en typisk beskrive slike strukturer med f.eks. UML sin klassediagramtype. Alle programmerere må kunne "oversette" slike diagrammer til kode, dvs. vite hvordan UML sine klasse- og assosiasjonsbegreper realiseres i et objektorientert språk som Java.