Een introductie tot Object Georiënteerd Programmeren
Con-/Destructors
Nu dat u weet hoe u een klasse maakt en vervolgens een instantie van deze klasse verkrijgt, is het tijd om u wat meer te vertellen over wat er gebeurd tijdens het maken van een object. Hiervoor gaan we terug naar het laatste voorbeeld van het vorige hoofdstuk:
klasse MijnEersteKlasse
begin
	publiek
		getal uitkomst;

		methode TelOp()
		begin
			uitkomst = 1 + 2;
		eind;
eind;

// Declareer een variabele van de klasse MijnEersteKlasse
MijnEersteKlasse MijnObject;
// Maak een instantie van MijnEersteKlasse aan
MijnObject = nieuw MijnEersteKlasse;
// Roep de methode TelOp() aan.
MijnObject.TelOp();
// Verwijder de instantie van MijnEersteKlasse
verwijder MijnObject;


De operator nieuw creeërt een instantie van MijnEersteKlasse en geeft een verwijzing naar die instantie terug. Nu wijst MijnObject dus naar de instantie van MijnEersteKlasse. En vanaf nu kunnen we de methode TelOp() aanroepen. Als we de methode TelOp() niet zouden aanroepen dan zou uitkomst nooit van zijn standaarde waarde afkomen(wat die standaard waarde is, verschilt per programmeertaal). Daarom zijn er constructors bedacht. Contructors zijn gewoon methodes van klassen, bedoeld om bepaalde variabelen van een klasse te initialiseren. Kijk eens naar dit voorbeeld:
klasse MijnEersteKlasse
begin
	publiek
		getal uitkomst;

		methode TelOp()
		begin
			uitkomst = 1 + 2;
		eind;
		
		constructor MijnEersteKlasse(getal NieuweUitKomst)
		begin
			uitkomst = NieuweUitKomst;
		eind;
eind;

// Declareer een variabele van de klasse MijnEersteKlasse
MijnEersteKlasse MijnObject;

// Maak een instantie van MijnEersteKlasse aan. En geeft de constructor
// de gewenste waarde van uitkomst mee.
MijnObject = nieuw MijnEersteKlasse(2);

// Verwijder de instantie van MijnEersteKlasse
verwijder MijnObject;


Zodra we nu met de operator nieuw een instantie van MijnEersteKlasse aanmaken, zal als allereerste de constructor worden aangeroepen. Aan de constructor geven we de gewenste waarde van uitkomst mee. In dit voorbeeld twee.

Er bestaat ook zoiets als een destructor, deze wordt zoals de naam al zegt aangeroepen als men de instantie van een klasse wilt verwijderen. Ik zal het nut van een destructor laten zien aan de hand van dit voorbeeld:
klasse Verbinding;
begin
	publiek
		
		constructor Verbinding()
		begin
			// He! Er wordt een instantie van deze klasse gemaakt!
			
			// Maak de verbinding met bijvoorbeeld het internet
		eind;
		
		destructor Verbinding()
		begin
			// Ow jee! De instantie wordt verwijderd!
			
			// Verbreek de verbinding
		eind;
eind;

// Declareer een variabele van de Verbindingsklasse
Verbinding Telefoneer;

// Maak een instantie aan van deze verbinding
// de constructor maakt automatisch de verbinding
Telefoneer = nieuw Verbinding;

// Verwijder de instantie.
// de destructor verbreekt de verbinding automatisch
verwijder Telefoneer;


Moderne programmeertalen als Java en C# verplichten u overigens niet om een instantie van een klasse zelf expliciet te verwijderen. Deze programmeertalen zullen dit automatisch voor u doen. De destructor zal dan ook worden aangeroepen.

Vorige - Volgende