Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Methode-Overbelasting | Methoden
Java Uitgebreid
course content

Cursusinhoud

Java Uitgebreid

Java Uitgebreid

1. Diepe Java-structuur
2. Methoden
3. String Geavanceerd
4. Klassen
5. Geavanceerde Klassen

book
Methode-Overbelasting

Een methode gebruiken met verschillende parameters

Java staat toe dat we verschillende methoden met dezelfde naam schrijven. Deze methoden kunnen verschillende returntypes en/of parametertypes hebben. Dit wordt gedaan zodat we deze methoden met verschillende types kunnen gebruiken. Laten we het voorbeeld nemen van een methode om een array af te drukken:

We kunnen deze methode schrijven om waarden van het type int te accepteren, maar wat als we een array van het type char moeten afdrukken? Moeten we dan een methode met een andere naam schrijven?

Java biedt hiervoor method overloading.

Laten we kijken naar een voorbeeld van het afdrukken van gegevens en het omkeren van een array uit het vorige hoofdstuk:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627
// method to reverse an int array static int[] flipArray(int[] array) { // creating a new array to store the reversed elements int[] result = new int[array.length]; int index = 0; // iterating over the input array in reverse order for (int i = array.length - 1; i > 0; i--) { result[index] = array[i]; index++; } // returning the reversed int array return result; } // method to reverse a char array static char[] flipArray(char[] array) { // creating a new array to store the reversed elements char[] result = new char[array.length]; int index = 0; // iterating over the input array in reverse order for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } // returning the reversed char array return result; }

We hebben de methode flipArray overbelast zodat deze verschillende parameters kan accepteren en retourneren: int en char. Wanneer deze methode wordt aangeroepen, kan deze zowel int- als char-typen accepteren en retourneren.

Laten we nu de methode overbelasten om een array op het scherm weer te geven. Deze methode moet ook int- en char-typen accepteren en retourneren:

Main.java

Main.java

copy
12345678910111213141516171819
// method to print an int array static void printArrayToTheConsole(int[] array) { // iterating through each element of the int array for (int element : array) { System.out.print(element + " "); } // printing a blank line after the array System.out.println(); } // method to print a char array static void printArrayToTheConsole(char[] array) { // iterating through each element of the char array for (char element : array) { System.out.print(element + " "); } // printing a blank line after the array System.out.println(); }

Hier hebben we de methode printArrayToTheConsole overbelast om int- en char-waarden te accepteren en te retourneren.

Nu combineren we de overbelaste methoden en gebruiken we ze in de main-methode voor een array van het type int en een array van het type char:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
package com.example; public class Main { // main method to run the application public static void main(String[] args) { // do not modify the code below int[] intArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; char[] charArray = {'s', 'b', 'c', 'd', 'e', 'f', 'g'}; printArrayToTheConsole(flipArray(intArray)); printArrayToTheConsole(flipArray(charArray)); } // method to reverse an int array static int[] flipArray(int[] array) { int[] result = new int[array.length]; int index = 0; // iterating over the array in reverse order for (int i = array.length - 1; i > 0; i--) { result[index] = array[i]; index++; } return result; } // method to reverse a char array static char[] flipArray(char[] array) { char[] result = new char[array.length]; int index = 0; // iterating over the array in reverse order for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } return result; } // method to print an int array to the console static void printArrayToTheConsole(int[] array) { // printing each element of the int array for (int element : array) { System.out.print(element + " "); } System.out.println(); } // method to print a char array to the console static void printArrayToTheConsole(char[] array) { // printing each element of the char array for (char element : array) { System.out.print(element + " "); } System.out.println(); } }

We hebben twee verschillende methoden overbelast door de mogelijkheid toe te voegen om deze methoden te gebruiken met arrays van het type char. We hebben ook de namen van deze methoden enigszins aangepast, omdat we ze nu meerdere keren kunnen overbelasten om waarden van verschillende typen te accepteren en terug te geven.

Om dit te verifiëren, hebben we twee verschillende arrays aangemaakt, één van het type int en de andere van het type char, en vervolgens deze arrays doorgegeven aan de overbelaste methoden, waarbij we de juiste resultaten hebben verkregen.

Overigens ben je al eerder overbelaste methoden tegengekomen. Bijvoorbeeld, de String-methode substring() is overbelast en kan ofwel één parameter, int beginIndex, of twee parameters, int beginIndex, int endIndex hebben. Method overloading is zeer nuttig en wordt veelvuldig in de praktijk gebruikt.

question mark

Hoe vaak kunnen we een methode overbelasten?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

course content

Cursusinhoud

Java Uitgebreid

Java Uitgebreid

1. Diepe Java-structuur
2. Methoden
3. String Geavanceerd
4. Klassen
5. Geavanceerde Klassen

book
Methode-Overbelasting

Een methode gebruiken met verschillende parameters

Java staat toe dat we verschillende methoden met dezelfde naam schrijven. Deze methoden kunnen verschillende returntypes en/of parametertypes hebben. Dit wordt gedaan zodat we deze methoden met verschillende types kunnen gebruiken. Laten we het voorbeeld nemen van een methode om een array af te drukken:

We kunnen deze methode schrijven om waarden van het type int te accepteren, maar wat als we een array van het type char moeten afdrukken? Moeten we dan een methode met een andere naam schrijven?

Java biedt hiervoor method overloading.

Laten we kijken naar een voorbeeld van het afdrukken van gegevens en het omkeren van een array uit het vorige hoofdstuk:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627
// method to reverse an int array static int[] flipArray(int[] array) { // creating a new array to store the reversed elements int[] result = new int[array.length]; int index = 0; // iterating over the input array in reverse order for (int i = array.length - 1; i > 0; i--) { result[index] = array[i]; index++; } // returning the reversed int array return result; } // method to reverse a char array static char[] flipArray(char[] array) { // creating a new array to store the reversed elements char[] result = new char[array.length]; int index = 0; // iterating over the input array in reverse order for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } // returning the reversed char array return result; }

We hebben de methode flipArray overbelast zodat deze verschillende parameters kan accepteren en retourneren: int en char. Wanneer deze methode wordt aangeroepen, kan deze zowel int- als char-typen accepteren en retourneren.

Laten we nu de methode overbelasten om een array op het scherm weer te geven. Deze methode moet ook int- en char-typen accepteren en retourneren:

Main.java

Main.java

copy
12345678910111213141516171819
// method to print an int array static void printArrayToTheConsole(int[] array) { // iterating through each element of the int array for (int element : array) { System.out.print(element + " "); } // printing a blank line after the array System.out.println(); } // method to print a char array static void printArrayToTheConsole(char[] array) { // iterating through each element of the char array for (char element : array) { System.out.print(element + " "); } // printing a blank line after the array System.out.println(); }

Hier hebben we de methode printArrayToTheConsole overbelast om int- en char-waarden te accepteren en te retourneren.

Nu combineren we de overbelaste methoden en gebruiken we ze in de main-methode voor een array van het type int en een array van het type char:

Main.java

Main.java

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
package com.example; public class Main { // main method to run the application public static void main(String[] args) { // do not modify the code below int[] intArray = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; char[] charArray = {'s', 'b', 'c', 'd', 'e', 'f', 'g'}; printArrayToTheConsole(flipArray(intArray)); printArrayToTheConsole(flipArray(charArray)); } // method to reverse an int array static int[] flipArray(int[] array) { int[] result = new int[array.length]; int index = 0; // iterating over the array in reverse order for (int i = array.length - 1; i > 0; i--) { result[index] = array[i]; index++; } return result; } // method to reverse a char array static char[] flipArray(char[] array) { char[] result = new char[array.length]; int index = 0; // iterating over the array in reverse order for (int i = array.length - 1; i >= 0; i--) { result[index] = array[i]; index++; } return result; } // method to print an int array to the console static void printArrayToTheConsole(int[] array) { // printing each element of the int array for (int element : array) { System.out.print(element + " "); } System.out.println(); } // method to print a char array to the console static void printArrayToTheConsole(char[] array) { // printing each element of the char array for (char element : array) { System.out.print(element + " "); } System.out.println(); } }

We hebben twee verschillende methoden overbelast door de mogelijkheid toe te voegen om deze methoden te gebruiken met arrays van het type char. We hebben ook de namen van deze methoden enigszins aangepast, omdat we ze nu meerdere keren kunnen overbelasten om waarden van verschillende typen te accepteren en terug te geven.

Om dit te verifiëren, hebben we twee verschillende arrays aangemaakt, één van het type int en de andere van het type char, en vervolgens deze arrays doorgegeven aan de overbelaste methoden, waarbij we de juiste resultaten hebben verkregen.

Overigens ben je al eerder overbelaste methoden tegengekomen. Bijvoorbeeld, de String-methode substring() is overbelast en kan ofwel één parameter, int beginIndex, of twee parameters, int beginIndex, int endIndex hebben. Method overloading is zeer nuttig en wordt veelvuldig in de praktijk gebruikt.

question mark

Hoe vaak kunnen we een methode overbelasten?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 6
some-alt