Object georiënteerd programmeren

In technische artikelen wordt de term ‘object georiënteerd programmeren’ (OOP) nog wel eens gebruikt. Een must-have voor gestructureerde applicaties. Maar wat is het nu eigenlijk?

Wat is het?

Object georiënteerd programmeren is een manier van programmeren waarbij logica en gegevens worden georganiseerd rondom objecten. Aan de hand van een object wordt een datastructuur gecreëerd met verschillende gegevens en methodes. Dit programmeermodel geldt al vele jaren als de standaard binnen softwareontwikkeling. De manier waarop logica wordt opgedeeld rondom objecten zorgt ervoor dat code leesbaar en beheerbaar blijft (in tegenstelling tot sequentieel opgebouwde code).

In veel object georiënteerde talen, zoals Java, wordt op basis van een klasse een nieuw object gecreëerd dat bestaat uit bepaalde attributen en eigenschappen, daarnaast heeft dit object de beschikking over bepaalde methodes, handelingen. De blauwdruk van deze attributen en methodes wordt een klasse genoemd, het object is de geïnstantieerde versie van deze klasse. Een geïnstantieerd object bevindt zich in een bepaalde toestand. Objecten kunnen hiërarchische verbanden hebben. Het is mogelijk de interne werking van objecten af te schermen, daarnaast is door de modulariteit van een programma het mogelijk om gemakkelijk code aan te passen en her te gebruiken.

Kenmerken van object georiënteerd programmeren

Populaire programmeertalen zoals C# en Java gebruiken object georiënteerd programmeren. Object georiënteerde programmeertalen worden door de talloze mogelijkheden als ontzettend krachtig gezien. Deze manier van programmeren kenmerkt zich onder andere door:

  • Overerving
  • Polymorfisme
  • Encapsulatie

Door middel van overerving kunnen klassen (classes) worden aangemaakt die een uitbreiding of aanpassing zijn van een bestaande klasse. Polymorfisme zorgt ervoor dat een variabele verschillende types objecten kan bevatten. Zo kan een object van een bepaalde subklasse methoden en eigenschappen van de zogenaamde superklasse gebruiken. Encapsulatie zorgt ervoor dat dat gegevens van een object niet altijd rechtstreeks kunnen worden aangesproken of aangepast. Als een programmeur een klasse gebruikt hoeft deze zich niet bezig te houden met de interne werking van deze klasse.

De voordelen van object georiënteerd programmeren

Objecten in een deze programmeertaal kunnen tastbaar zijn maar ook zeer abstract. Door in Java een klasse te programmeren, kunnen er oneindig veel objecten aangemaakt worden die iets ‘kunnen’ of ‘doen’. Door deze talloze mogelijkheden en variaties is object-georiënteerd programmeren ontzettend krachtig. De code is veelal herbruikbaar. Object georiënteerd programmeren is wel meer resource intensief dan functioneel programmeren. Sommige programmeertalen zijn puur objectgeoriënteerd, andere talen combineren het object georiënteerde met functioneel programmeren (bijv. Scala).