Een introductie tot Object Georiënteerd Programmeren
Een klasse
Voordat u een object kunt maken, moet u als eerste een klasse(Engels: class) maken. Als een huis een object was dan zouden de tekeningen van de architect de klasse zijn. Zo ziet de meest eenvoudige klasse eruit in onze psuedo-code.
klasse MijnEersteKlasse
begin

eind;

Dit is de klasse MijnEersteKlasse. In die klasse kunnen we functies en procedures zetten. Zodra functies en/of procedures tot een klasse behoren noemen we ze methoden(Engels: methods). Waar de inhoud van de methoden geplaatst moet worden hangt van de taal af, in C++ en Object Pascal bijvoorbeeld moet deze buiten de klasse staan, in Java en C# moeten deze juist in de klasse gezet worden. In onze psuedo-code plaatsen wij de inhoud in de klasse.

Een klasse in C++:
class MijnEersteKlasse
{
public:
	void TelOp();
	int uitkomst;
};

void MijnEersteKlasse::TelOp()
{
	uitkomst = 1 + 2;	
}


Een klasse in C#:
class MijnEersteKlasse
{
	public int uitkomst;
	
	public void TelOp()
	{
		uitkomst = 1 + 2;
	}
}


Een klasse in onze psuedo-code:
klasse MijnEersteKlasse
begin
	publiek
		getal uitkomst;
		
		methode TelOp()
		begin
			uitkomst = 1 + 2;
		eind;
eind;


Getal stelt hier een variabele voor, die gehele getallen kan bevatten. De methode TelOp(); geeft uitkomst de waarde 3, immers 1 + 2 is 3. Wat publiek is leg ik u in het hoofdstuk "toegangsspecificaties" uit.

Voordat u de methode TelOp() kan aanroepen moet u een object van die klasse hebben. Als een architect de tekeningen af heeft, kunt u immers ook niet direct in het huis gaan wonen maar moet het eerst gebouwd worden. In OOP termen moet u eerst een instantie van de klasse hebben.

We breiden de code nu uit zodat een instantie van de klasse wordt gemaakt:
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;


Nadat de klasse gemaakt is kunnen we de naam hiervan gebruiken als normale variabele. In onze psuedo-code wordt er niet meteen een instantie van de klasse aangemaakt, sommige talen doen dit wel. In de regel na de declaratie van MijnObject maken we een instantie van MijnEersteKlasse aan. Nu pas kunnen we de methode TelOp aanroepen. Om een methode aan te roepen of een variabele van een object op te vragen gebruiken we de punt-operator(.). Als we een object niet meer nodig hebben moeten we deze verwijderen. Dit gebeurt in de laatste regel van de psuedo-code.
OPMERKING:
In PHP gebruikt men hiervoor de pijl-operator(->). In C++ wordt deze operator ook gebruikt indien men met pointers naar objecten werkt.


Er bestaat ook zoiets als statische methoden, statische methoden zijn methoden die kunnen aangeroepen worden zonder dat er een instantie van die klasse bestaat. Dit kan handig zijn als u een hoop functies heeft, die u wilt onderbrengen in een apart gedeelte van het programma, maar dat u ze wel kan aanroepen zonder een object te hebben.
klasse HulpMethoden
begin
	publiek
		statische methode DoeNiks()
		begin
			// ik doe niks
		eind;
eind;

// U hoeft geen instantie te creeëren van 
// de klasse HulpMethoden. U kunt de methode aanroepen
// door middel van Klasse.StatischeMethode();
HulpMethoden.DoeNiks();


Hoe een statische methoden wordt aangeroepen hangt van de taal af. C++ heeft een aparte operator: :: om statische methoden aan te roepen.

Vorige - Volgende