Arrays en methoden
Zoals alle datatypes kan je ook arrays van eender welk datatype als parameter gebruiken bij het schrijven van een methode. Lees nu volgende waarschuwing extra aandachtig, a.u.b:"
Herinner je dat arrays by reference werken. Je werkt dus steeds met de origineel meegegeven array (of beter, de referentie er naar), ook in de methode. Als je dus aanpassingen aan de array aanbrengt in de methode, dan zal dit ook gevolgen hebben op de array van waaruit we de methode aanriepen.
Stel dat je bijvoorbeeld een methode hebt die als parameter 1 array van ints meekrijgt. De methode zou er dan als volgt uitzien:
Om deze methode aan te roepen volstaat het om een bestaande array als parameter mee te geven:
Array grootte in de methode
Een array als parameter meegeven kan dus, maar een ander aspect waar rekening mee gehouden moet worden is dat je niet kan ingeven in de parameterlijst hoe groot de array is. Je zal dus in je methode steeds de grootte van de array moeten uitlezen met de .Length
-eigenschap.
Volgende methodesignatuur is dus FOUT!
En zal volgende foutboodschap genereren:
Arraymethode voorbeeld
Volgend voorbeeld toont een methode die alle getallen van de meegegeven array op het scherm zal tonen:
De ToonArray
methode aanroepen kan dan als volgt:
En de output zal dan zijn:
Voorbeeldprogramma met methoden
Volgend programma toont hoe we verschillende onderdelen van de code in methoden hebben geplaatst zodat:
de lezer van de code sneller kan zien wat het programma juist doet.
code herbruikbaar is.
Begrijp je wat dit programma doet? En kan je voorspellen wat er op het scherm zal komen?
Array als return-type bij een methode
Een array kan ook gebruikt worden als het returntype van een methode. Hiervoor zet je gewoon het type array als returntype in de methodesignatuur. Ook hier mag geen grootte aangeven.
Stel bijvoorbeeld dat je een methode hebt die een int-array aanmaakt van een gegeven grootte waarbij ieder element van de array reeds een beginwaarde heeft die je ook als parameter meegeeft:
De aanroep van deze methode vereist dan dat je het resultaat opvangt in een nieuwe variabele, als volgt:
Zoals je weet is het gelijkvloers in sommige landen 0, terwijl in andere dit 1 is. Volgende programma past het nummer van het gelijkvloers aan:
Dankzij het feit dat we aan PasAan
een array meegeven by reference zal de methode werken op de originele array en is deze code dus mogelijk.
Vergelijk dit met volgende voorbeeld waar we een int
als parameter meegeven die by value en niét by reference wordt meegegeven:
Daar de methode nu werkt met een kopie, zal de aanpassing in de methode dus geen invloed hebben op de origineel meegegeven int
(ongeacht dat die deel uitmaakt van een array).
Last updated