Programmeren in Java/Methoden

Bij het schrijven van code, zul je merken dat je vaak dezelfde code schrijft om taken uit te voeren. Methoden laten toe stukjes code die je regelmatig gebruikt te hergebruiken zodat je ze maar één keer moet schrijven. Daarnaast kun je methoden ook gebruiken om lange code op te splitsen in methoden die elk een probleem oplossen. Dit heeft verschillende voordelen, het kan bijvoorbeeld de leesbaarheid van de code vergroten aangezien iedere methode één probleem oplost en duidelijk is wat iedere functie doet ook omdat je iedere methode een naam kan geven. Als er een fout in de code is kun je makkelijker opzoeken waar de fout ligt en moet je enkel de methode verbeteren die de fout bevat. Methoden worden vaak, vooral in andere programmeertalen, functies genoemd.

Je bent al in contact gekomen met methoden, waaronder de println() methode van System.out. Deze methode is een blok code dat toe laat om een lijn te printen op het scherm.

Methode definiëren en oproepenBewerken

Eerste methodeBewerken

We gaan een eerste methode schrijven in volgend Main klasse.

public class Main {

    public static void main(String[] args) {

    }
}

We definiëren een simpele methode als volgt.

public class Main {

    public static void myFirstMethod() {
        System.out.println("Dit is mijn eerste methode.");
    }

    public static void main(String[] args) {

    }
}

Je gebruikt de sleutelwoorden public static void gevolgd door de naam die je wilt geven aan je methode, hier in dit voorbeeld is dat myFirstMethod. Deze wordt gevolgd door haakjes () met daarna accolades {} die een code block vastleggen. Wat er binnen deze accolades is vermeld is de code die zal worden uitgevoerd wanneer de methode wordt opgeroepen.

Nu hebben we wel een methode gedefiniëerd, we hebben ze nog niet opgeroepen. Je kunt een methode oproepen door simpelweg de naam van de methode te vermelden gevolgd door haakjes (), zoals volgt.

public class Main {

    public static void myFirstMethod() {
        System.out.println("Dit is mijn eerste methode.");
    }

    public static void main(String[] args) {
        myFirstMethod();
    }
}

Met als uitvoer:

Dit is mijn eerste methode.

Een methode meermaals laten uitvoeren, doe je gewoon door het meermaals op te roepen. Je kunt dezelfde methode zoveel keer oproepen als je wilt.

public class Main {

    public static void myFirstMethod() {
        System.out.println("Dit is mijn eerste methode.");
    }

    public static void main(String[] args) {
        myFirstMethod();
        myFirstMethod();
        myFirstMethod();
        myFirstMethod();
    }
}

Bovenstaande zal dus "Dit is mijn eerste methode." vier keer afprinten.

NaamgevingBewerken

Meerdere methodesBewerken

Je kunt ook zoveel methodes definiëren zoals je wilt.

public class Main {

    public static void myFirstMethod() {
        System.out.println("Dit is mijn eerste methode.");
    }

    public static void mySecondMethod() {
        System.out.println("Dit is mijn tweede methode.");
    }

    public static void myThirdMethod() {
        System.out.println("Dit is mijn derde methode.");
    }

    public static void main(String[] args) {
        myFirstMethod();
        mySecondMethod();
        myThirdMethod();
    }
}

Dit geeft volgende uitvoer:

Dit is mijn eerste methode.
Dit is mijn tweede methode.
Dit is mijn derde methode.

De volgorde dat je ze vermeld maakt niet uit, wel moet je oppassen met de namen van de methodes. Onze simpele methodes mogen niet dezelfde naam hebben, anders weet Java niet welke methode je wilt gebruiken. Later in dit hoofdstuk zul je zien dat je wel dezelfde naam kunt gebruiken, maar dat je wel de regels daarvoor moet volgen.

Methoden oproepen vanuit een andere methodeBewerken

Je kunt ook methoden oproepen van een andere methode. Zoals bijvoorbeeld het volgende:

public class Main {

    public static void myFirstMethod() {
        System.out.println("Dit is mijn eerste methode.");
        mySecondMethod();
    }

    public static void mySecondMethod() {
        myThirdMethod();
        System.out.println("Dit is mijn tweede methode.");
    }

    public static void myThirdMethod() {
        System.out.println("Dit is mijn derde methode.");
    }

    public static void main(String[] args) {
        myFirstMethod();
    }
}

Dit geeft volgende uitvoer:

Dit is mijn eerste methode.
Dit is mijn derde methode.
Dit is mijn tweede methode.

Natuurlijk heb je al eens een methode opgeroepen vanuit een andere methode. main is namelijk ook een methode. Waar je wel mee moet oppassen is dat je niet in een oneindige lus terecht komt, door bijvoorbeeld een methode een ander methode laten oproepen die dan weer de vorige methode oproept.

public class Main {

    public static void myFirstMethod() {
        System.out.println("Dit is mijn eerste methode.");
        mySecondMethod();
    }

    public static void mySecondMethod() {
        System.out.println("Dit is mijn tweede methode.");
        myFirstMethod();
    }

    public static void main(String[] args) {
        myFirstMethod();
    }
}

Dit geeft volgende uitvoer:

Dit is mijn eerste methode.
Dit is mijn tweede methode.
Dit is mijn eerste methode.
Dit is mijn tweede methode.
Dit is mijn eerste methode.
Dit is mijn tweede methode.
Dit is mijn eerste methode.
Dit is mijn tweede methode.
...

Dit zal telkens dezelfde regels tekst tonen. Als je toch in deze situatie terecht komt kun je dit stoppen door CTRL+c in te drukken als je in de commandoregel werkt of je kunt meestal op stop drukken als je een IDE gebruikt.

Argumenten en ParametersBewerken

ReturnBewerken

OverloadingBewerken

RecursieBewerken

Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.