Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Metodöverladdning | Metoder
Java Fördjupning

bookMetodöverladdning

Användning av en metod med olika parametrar i Java

Java tillåter oss att skriva olika metoder med samma namn. Dessa metoder kan ha olika returtyper och/eller parametertyper. Detta görs för att vi ska kunna använda dessa metoder med olika typer. Låt oss ta exemplet med en metod för att skriva ut en array:

Vi kan skriva denna metod för att acceptera värden av typen int, men vad händer om vi behöver skriva ut en array av typen char? Måste vi då skriva en metod med ett annat namn?

Java tillhandahåller metodöverladdning för detta ändamål.

Låt oss titta på ett exempel på att skriva ut data och vända en array från föregående kapitel:

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 har överlagrat metoden flipArray för att acceptera och returnera olika parametrar: int och char. Om vi anropar denna metod kan den acceptera och returnera både int- och char-typer.

Nu ska vi överlasta metoden för att visa en array på skärmen. Denna metod ska också acceptera och returnera int- och 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(); }

Här har vi överlagrat metoden printArrayToTheConsole för att acceptera och returnera int- och char-värden.

Nu kombineras de överlagrade metoderna och används i main-metoden för en array av typen int och en 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(); } }

Två olika metoder har överlagrats genom att lägga till möjligheten att använda dessa metoder med arrayer av typen char. Namnen på dessa metoder har även ändrats något, eftersom de nu kan överlagras flera gånger för att acceptera och returnera värden av olika typer.

För att verifiera detta skapades två olika arrayer, en av typen int och en av typen char, och dessa arrayer skickades sedan till de överlagrade metoderna, vilket gav korrekta resultat.

För övrigt har du redan stött på överlagrade metoder tidigare. Till exempel är String-metoden substring() överlagrad och kan ha antingen en parameter, int beginIndex, eller två parametrar, int beginIndex, int endIndex. Metodöverlagring är mycket användbart och vanligt förekommande i praktiken.

question mark

Hur många gånger kan vi överlagra en metod?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 6

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 2.63

bookMetodöverladdning

Svep för att visa menyn

Användning av en metod med olika parametrar i Java

Java tillåter oss att skriva olika metoder med samma namn. Dessa metoder kan ha olika returtyper och/eller parametertyper. Detta görs för att vi ska kunna använda dessa metoder med olika typer. Låt oss ta exemplet med en metod för att skriva ut en array:

Vi kan skriva denna metod för att acceptera värden av typen int, men vad händer om vi behöver skriva ut en array av typen char? Måste vi då skriva en metod med ett annat namn?

Java tillhandahåller metodöverladdning för detta ändamål.

Låt oss titta på ett exempel på att skriva ut data och vända en array från föregående kapitel:

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 har överlagrat metoden flipArray för att acceptera och returnera olika parametrar: int och char. Om vi anropar denna metod kan den acceptera och returnera både int- och char-typer.

Nu ska vi överlasta metoden för att visa en array på skärmen. Denna metod ska också acceptera och returnera int- och 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(); }

Här har vi överlagrat metoden printArrayToTheConsole för att acceptera och returnera int- och char-värden.

Nu kombineras de överlagrade metoderna och används i main-metoden för en array av typen int och en 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(); } }

Två olika metoder har överlagrats genom att lägga till möjligheten att använda dessa metoder med arrayer av typen char. Namnen på dessa metoder har även ändrats något, eftersom de nu kan överlagras flera gånger för att acceptera och returnera värden av olika typer.

För att verifiera detta skapades två olika arrayer, en av typen int och en av typen char, och dessa arrayer skickades sedan till de överlagrade metoderna, vilket gav korrekta resultat.

För övrigt har du redan stött på överlagrade metoder tidigare. Till exempel är String-metoden substring() överlagrad och kan ha antingen en parameter, int beginIndex, eller två parametrar, int beginIndex, int endIndex. Metodöverlagring är mycket användbart och vanligt förekommande i praktiken.

question mark

Hur många gånger kan vi överlagra en metod?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 6
some-alt