Klassen zijn "gewoon" nieuwe types. Alle regels die we dus al kenden in verband met het doorgeven van variabelen als parameters in een methoden blijven gelden. Het enige verschil is dat we objecten by reference meegeven aan een methode. Aanpassingen aan het object in de methode zal dus betekenen dat je het originele object aanpast dat aan de methode werd meegegeven. Hier moet je dus zeker rekening mee houden.
Een voorbeeld. Stel dat we volgende klasse hebben waarin we metingen willen opslaan, alsook wie de meting heeft gedaan:
In ons hoofdprogramma schrijven we een methode ToonMetingInKleur
die ons toelaat om deze meting op het scherm te tonen in een bepaalde kleur. Het gebruik en de methode zelf zouden er zo kunnen uitzien:
Je kan dus ook methoden schrijven die meegegeven objecten aanpassen daar we deze by reference doorsturen. Een voorbeeld:
Als we deze methode als volgt aanroepen
Da zullen we zien dat de temperatuur in m1
effectief met 1 werd verhoogd.
Dit gedrag zouden we NIET zien bij volgende methode daar int
by value wordt doorgegeven:
Stel dat we volgende methode hebben
Je mag deze methode dus ook oproepen als volgt (we gebruiken de Meting
objecten m1
en m2
uit vorige paragraaf):
Het type van de property Temperatuur
is int
en mag je dus als parameter aan deze methoden meegeven.
Weer hetzelfde verhaal: ook klassen mogen het resultaat van een methoden zijn.
Deze methode kan je als volgt dan gebruiken:
Merk op dat het dus kan zijn dat een methode null
teruggeeft. Het kan dus zeker geen kwaad om steeds in je code te controleren of je effectief iets hebt terug gekregen: