Wat is objectgeoriënteerd programmeren (OOP)?
Object-georiënteerd programmeren (OOP) is een fundamenteel programmeerparadigma dat door bijna elke ontwikkelaar op een bepaald punt in zijn loopbaan wordt gebruikt. OOP is het meest populaire programmeerparadigma en wordt onderwezen als de standaard manier om te coderen gedurende het grootste deel van de onderwijscarrière van een programmeur. Vandaag zullen we de basisprincipes uiteenzetten van wat een programma object-georiënteerd maakt, zodat je kunt beginnen dit paradigma te gebruiken in je eigen projecten en interviews.
Wat zijn de onderdelen van objectgeoriënteerd programmeren?
Objectgeoriënteerd programmeren (OOP) is een programmeerparadigma dat berust op het concept van klassen en objecten. Het wordt gebruikt om een softwareprogramma te structureren in eenvoudige, herbruikbare stukken code blauwdrukken (meestal klassen genoemd), die worden gebruikt om individuele instanties van objecten te creëren. Er zijn veel objectgeoriënteerde programmeertalen, waaronder JavaScript, C++, Java en Python.
Een klasse is een abstracte blauwdruk die wordt gebruikt om meer specifieke, concrete objecten te maken. Klassen vertegenwoordigen vaak brede categorieën, zoals Auto of Hond, die attributen delen. Deze klassen bepalen welke attributen een instantie van dit type zal hebben, zoals kleur, maar niet de waarde van die attributen voor een specifiek object.
Hoe OOP-programma’s te structureren
Laten we een probleem uit de echte wereld nemen, en een conceptueel OOP-softwareprogramma ontwerpen. Stel je voor dat je een hondenpension runt, met honderden huisdieren, en je moet voor elk huisdier de namen, leeftijden en dagen bijhouden. Hoe zou je eenvoudige, herbruikbare software ontwerpen om de honden te modelleren? Met honderden honden zou het inefficiënt zijn om voor elke hond een unieke code te schrijven. Dus moet je het opsplitsen in klassen en objecten.
In een notendop, klassen zijn in wezen door de gebruiker gedefinieerde gegevenstypes. In een klasse wordt een blauwdruk gemaakt van de structuur van methoden en attributen. Individuele objecten worden geïnstantieerd, of gecreëerd vanuit deze blauwdruk.
Klassen bevatten velden voor attributen, en methoden voor gedrag. In ons voorbeeld van de klasse Hond zijn de attributen naam en verjaardag, terwijl de methoden blaffen() en updateAttendance() zijn. Natuurlijk bevat OOP objecten! Objecten zijn instanties van klassen die zijn gemaakt met specifieke gegevens, bijvoorbeeld in het onderstaande codefragment is Rufus een instantie van de klasse Hond.
Attributen en methoden
Attributen zijn de informatie die wordt opgeslagen. Attributen worden gedefinieerd in de Class template. Wanneer objecten worden geïnstantieerd bevatten individuele objecten gegevens die zijn opgeslagen in het Attributen veld.
De toestand van een object wordt bepaald door de gegevens in de attributenvelden van het object. Bijvoorbeeld, een puppy en een hond kunnen verschillend behandeld worden op dierenkamp. De verjaardag zou de toestand van een object kunnen definiëren, en de software toestaan honden van verschillende leeftijden verschillend te behandelen.
Methoden vertegenwoordigen gedrag. Methoden voeren acties uit; methoden kunnen informatie over een object teruggeven, of de gegevens van een object bijwerken. De code van de methode wordt gedefinieerd in de definitie van de klasse.
Wanneer individuele objecten worden geïnstantieerd, kunnen deze objecten de methoden aanroepen die in de klasse gedefinieerd zijn. In de codefragment hieronder is de methode blaffen gedefinieerd in de klasse Dog, en de methode blaffen() wordt aangeroepen op het object Rufus.