Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Metodeoverlasting | Metoder
Java Utvidet
course content

Kursinnhold

Java Utvidet

Java Utvidet

1. Dyp Java-struktur
2. Metoder
3. Avansert Streng
4. Klasser
5. Avanserte Klasser

book
Metodeoverlasting

Bruk av en metode med ulike parametere

Java lar oss skrive ulike metoder med samme navn. Disse metodene kan ha forskjellige returtyper og/eller parametertyper. Dette gjøres slik at vi kan bruke disse metodene med ulike typer. La oss ta et eksempel på en metode for å skrive ut et array:

Vi kan skrive denne metoden til å akseptere verdier av typen int, men hva om vi trenger å skrive ut et array av typen char? Må vi da skrive en metode med et annet navn?

Java tilbyr metodeoverlasting for dette formålet.

La oss se på et eksempel på utskrift av data og reversering av et array fra forrige kapittel:

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; }

Vi overlastet metoden flipArray slik at den kan motta og returnere ulike parametere: int og char. Hvis vi kaller denne metoden, kan den motta og returnere både int- og char-typer.

La oss nå overbelaste metoden for å vise et array på skjermen. Denne metoden skal også kunne motta og returnere int- og char-typer:

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(); }

Her har vi overbelastet metoden printArrayToTheConsole til å akseptere og returnere int- og char-verdier.

Nå kombinerer vi de overbelastede metodene og bruker dem i main-metoden for et array av typen int og et array av typen 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(); } }

Vi har overbelastet to forskjellige metoder ved å legge til muligheten til å bruke disse metodene med arrayer av typen char. Vi har også endret navnene på disse metodene litt, siden vi nå kan overbelaste dem flere ganger for å akseptere og returnere verdier av forskjellige typer.

For å bekrefte dette, opprettet vi to forskjellige arrayer, én av typen int og en annen av typen char, og sendte deretter disse arrayene til de overbelastede metodene, og fikk de riktige resultatene.

Forresten, du har allerede støtt på overbelastede metoder tidligere. For eksempel er String-metoden substring() overbelastet og kan ha enten én parameter, int beginIndex, eller to parametere, int beginIndex, int endIndex. Metodeoverbelastning er svært nyttig og vanlig i praksis.

question mark

Hvor mange ganger kan vi overbelaste en metode?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 6

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

course content

Kursinnhold

Java Utvidet

Java Utvidet

1. Dyp Java-struktur
2. Metoder
3. Avansert Streng
4. Klasser
5. Avanserte Klasser

book
Metodeoverlasting

Bruk av en metode med ulike parametere

Java lar oss skrive ulike metoder med samme navn. Disse metodene kan ha forskjellige returtyper og/eller parametertyper. Dette gjøres slik at vi kan bruke disse metodene med ulike typer. La oss ta et eksempel på en metode for å skrive ut et array:

Vi kan skrive denne metoden til å akseptere verdier av typen int, men hva om vi trenger å skrive ut et array av typen char? Må vi da skrive en metode med et annet navn?

Java tilbyr metodeoverlasting for dette formålet.

La oss se på et eksempel på utskrift av data og reversering av et array fra forrige kapittel:

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; }

Vi overlastet metoden flipArray slik at den kan motta og returnere ulike parametere: int og char. Hvis vi kaller denne metoden, kan den motta og returnere både int- og char-typer.

La oss nå overbelaste metoden for å vise et array på skjermen. Denne metoden skal også kunne motta og returnere int- og char-typer:

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(); }

Her har vi overbelastet metoden printArrayToTheConsole til å akseptere og returnere int- og char-verdier.

Nå kombinerer vi de overbelastede metodene og bruker dem i main-metoden for et array av typen int og et array av typen 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(); } }

Vi har overbelastet to forskjellige metoder ved å legge til muligheten til å bruke disse metodene med arrayer av typen char. Vi har også endret navnene på disse metodene litt, siden vi nå kan overbelaste dem flere ganger for å akseptere og returnere verdier av forskjellige typer.

For å bekrefte dette, opprettet vi to forskjellige arrayer, én av typen int og en annen av typen char, og sendte deretter disse arrayene til de overbelastede metodene, og fikk de riktige resultatene.

Forresten, du har allerede støtt på overbelastede metoder tidligere. For eksempel er String-metoden substring() overbelastet og kan ha enten én parameter, int beginIndex, eller to parametere, int beginIndex, int endIndex. Metodeoverbelastning er svært nyttig og vanlig i praksis.

question mark

Hvor mange ganger kan vi overbelaste en metode?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 6
some-alt