Objectgeoriënteerde programmering
Object-georiënteerd programmeren (OOP) is een manier om computerprogramma's te schrijven die het idee van "objecten" gebruikt om gegevens en methoden weer te geven. Meestal waren computerprogramma's slechts een lijst met instructies voor de computer, die de computer vertellen om bepaalde dingen op een bepaalde manier te doen, wat procedurele programmering wordt genoemd. Bij objectgeoriënteerd programmeren maken computerprogramma's echter gebruik van objecten die met elkaar praten en om de gegevens in die objecten te veranderen, om te werken op een manier die de gebruiker wil. Ook helpt het, door de manier waarop object-georiënteerd programmeren is ontworpen, de ontwikkelaar door toe te staan dat code gemakkelijk hergebruikt kan worden door andere delen van het programma of zelfs door andere mensen.
De meeste programmeertalen zijn een mix van verschillende soorten manieren om computerprogramma's te schrijven. Zo maakt Python het bijvoorbeeld mogelijk om computerprogramma's zowel in objectgeoriënteerde programmering als in procedurele programmering te schrijven. Er zijn veel programmeertalen die het mogelijk maken om computerprogramma's in OOP te schrijven, sommige van deze programmeertalen zijn dat bijvoorbeeld: C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, enz.
Kenmerken
Het belangrijkste idee van objectgeoriënteerd programmeren is dat alles een object is. Het object kan echter van verschillende types zijn:
- Variabelen kunnen informatie (of gegevens) van verschillende typen bevatten die door de programmeertaal worden ondersteund. Voorbeelden hiervan zijn het gehele gegevenstype en de lijsten met de gegevensstructuur. Variabelen is een idee dat al beschikbaar is vanuit procedurele programmeertalen. In de objectgeoriënteerde programmering worden variabelen voornamelijk attributen genoemd.
- Procedures (ook wel bekend als functies, methoden of routines) zijn een lijst met instructies die de computer vertellen om invoer te nemen, enkele berekeningen te doen of gegevens te wijzigen, en de uitvoer terug te sturen naar de gebruiker. Procedures is ook een idee dat al beschikbaar is vanuit procedurele programmeertalen. In de objectgeoriënteerde programmering zijn procedures vooral bekend als methoden.
- Klassen zijn een verzameling van verschillende variabelen en procedures. Klassen praten meestal met elkaar om wijzigingen in de gegevens aan te brengen om te werken op een manier die de gebruiker wil.
Objecten is een term die wordt gebruikt om te verwijzen naar instanties van klassen.
Voorbeelden
In de onderstaande voorbeelden creëren we een klasse die Menselijk
wordt genoemd. Deze klasse bevat de attributen naam
(voor de naam van de persoon) en vriend
(voor de naam van de vriend). Elk van de methoden in de Human
class bevat een lijst met instructies die gebruik maken van zowel de naam
als de vriendschapsattributen.
Python
Deze code staat in Python.
Java
Deze code is in Java.
De menselijke klasse
Een methode om te praten met de menselijke klasse boven
Kritiek
Hoewel object georiënteerde programmering populair is, zijn er veel mensen die denken dat het slecht is en het bekritiseren.
- Luca Cardelli schreef een artikel met de titel 'Bad Engineering Properties of Object-Oriented Languages'.
- Richard Stallman schreef in 1995: "Het toevoegen van OOP aan Emacs is niet duidelijk een verbetering; ik gebruikte OOP bij het werken aan de Lisp Machine raamsystemen, en ik ben het niet eens met de gebruikelijke opvatting dat het een superieure manier van programmeren is".
- Een studie van Potok et al. vertelt ons dat er zeer weinig verschil in productiviteit is tussen OOP en procedurele benaderingen.
- Christopher J. Date zei dat het vergelijken van OOP met andere dingen, vooral hoe OOP en het andere ding gerelateerd zijn, moeilijk is omdat mensen het niet eens zijn over de betekenis van OOP.
- Alexander Stepanov stelde voor dat OOP een standpunt geeft dat beperkt is tot wiskunde, en noemde het, "bijna net zo veel van een bedrog als Kunstmatige Intelligentie".
- Paul Graham, een succesvolle internetverkoper en programmeur, heeft gesuggereerd dat het doel van OOP is om te fungeren als een kudde-mechanisme dat de gemiddelde programmeurs in gemiddelde organisaties ervan weerhoudt om "te veel schade aan te richten". Dit vertraagt ook snellere, betere programmeurs die weten hoe ze de dingen op een krachtigere en compactere manier moeten doen. [1]
Vragen en antwoorden
V: Wat is object-georiënteerd programmeren?
A: Object-georiënteerd programmeren is een manier om computerprogramma's te schrijven waarbij "objecten" gebruikt worden voor gegevens en methoden.
V: Hoe verschilt object-georiënteerd programmeren van procedureel programmeren?
A: Bij procedureel programmeren zijn computerprogramma's een lijst met instructies voor de computer, die de computer vertelt om bepaalde dingen op een bepaalde manier te doen. Bij objectgeoriënteerd programmeren gebruiken computerprogramma's objecten die met elkaar praten om de gegevens in die objecten te veranderen en om te werken op een manier die de gebruiker wil.
V: Wat is het voordeel van object-georiënteerd programmeren voor ontwikkelaars?
A: Dankzij objectgeoriënteerd programmeren kan code gemakkelijk hergebruikt worden door andere delen van het programma of zelfs door andere mensen.
V: Waar staat de programmeertaal Python om bekend?
A: Python maakt het mogelijk om computerprogramma's zowel objectgeoriënteerd als procedureel te programmeren.
V: Kunt u voorbeelden geven van programmeertalen waarmee u computerprogramma's objectgeoriënteerd kunt schrijven?
A: Programmeertalen waarmee u computerprogramma's kunt schrijven in object-georiënteerd programmeren zijn C++, Java, Ruby, Perl, Emarald, Sapphire, PHP, Python, C#, enz.
V: Wat zijn objecten bij object-georiënteerd programmeren?
A: Objecten zijn entiteiten in object-georiënteerd programmeren die gegevens en methodes bevatten.
V: Hoe werken objecten bij object-georiënteerd programmeren?
A: Objecten interageren met elkaar om de gegevens in die objecten te wijzigen en om te werken op een manier die de gebruiker wil.