Objectgeoriënteerd
paradigma dat gebruikt wordt bij het objectgeoriënteerd programmeren en de objectgeoriënteerde opslag van data / Uit Wikipedia, de vrije encyclopedie
Objectgeoriënteerd, vaak afgekort tot OO als afkorting voor het Engelse object-oriented, is een paradigma dat gebruikt wordt bij het objectgeoriënteerd programmeren en de objectgeoriënteerde opslag van data. Bij deze benadering wordt een systeem opgebouwd uit objecten.
Eenvoudig gezegd bestaat een object uit bepaalde gegevens en de programmatuur die gebruikt wordt om die gegevens te verwerken. Bij voorkeur zijn die gegevens uitsluitend te benaderen via de bijbehorende programmatuur. Een bestand kan bijvoorbeeld als object worden gedefinieerd, waarbij de gebruiker van het object slechts lees- en schrijfopdrachten kan geven, en interne gegevens zoals de "handle" van het bestand aan het zicht worden onttrokken. Kenmerkend voor objecten is ook dat zij in een hiërarchisch verband tot elkaar kunnen staan: zo is een invoerbestand een soort bestand.
Zuiver technisch biedt objectgeoriënteerd programmeren niet de mogelijkheid om een nieuw soort toepassingen te implementeren. Het dient uitsluitend om programma's beter te structureren, met het oog op de overzichtelijkheid, onderhoudbaarheid en herbruikbaarheid van componenten. Als dusdanig is het objectgeoriënteerde paradigma een opvolger van gestructureerd programmeren. Gestructureerd programmeren heeft veel klein- en middelschalige softwareprojecten tot een goed einde helpen brengen, maar bleek minder succesvol bij de grootschalige projecten die gebruikelijker werden tegen het einde van de jaren 1980.[1]
Het objectgeoriënteerde paradigma kende een opmars in het begin van de jaren 90. Vele talen ondersteunen tegenwoordig objectgeoriënteerd programmeren.
Belangrijke voorzieningen in het objectgeoriënteerd programmeren zijn:
- Informatie verbergen: het kunnen verbergen van de interne werking van objecten, waarmee modulariteit afdwingbaar wordt.
- Modulariteit: programma's bestaan uit onderdelen die onafhankelijk kunnen worden aangepast zolang hun interface hetzelfde kan blijven; zo kan programmatuur gemakkelijker hergebruikt en uitgebreid worden.
- Overerving: de definitie van een klasse als een uitbreiding of aanpassing van een andere klasse.
- Polymorfisme: bij het aanroepen van een functie kan gekozen worden uit verschillende implementaties, vaak pas tijdens programmauitvoering.
De eerste twee voorzieningen zijn niet specifiek voor objectoriëntatie, maar worden ook gebruikt in modulaire programmeertalen zoals Modula, Ada en CLU. De specifieke kenmerken van overerving en polymorfisme zijn tegelijk de meest controversiële.