Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Methodenüberladung | Methoden
Java Erweitert
course content

Kursinhalt

Java Erweitert

Java Erweitert

1. Tiefe Java-Struktur
2. Methoden
3. String Advanced
4. Klassen
5. Klassen Fortgeschritten

book
Methodenüberladung

Verwendung einer Methode mit unterschiedlichen Parametern

Java ermöglicht es uns, verschiedene Methoden mit demselben Namen zu schreiben. Diese Methoden können unterschiedliche Rückgabetypen und/oder Parametertypen haben. Dies wird getan, damit wir diese Methoden mit verschiedenen Typen verwenden können. Nehmen wir das Beispiel einer Methode zum Drucken eines Arrays:

Wir können diese Methode so schreiben, dass sie Werte vom Typ int akzeptiert, aber was ist, wenn wir ein Array vom Typ char drucken müssen? Müssen wir eine Methode mit einem anderen Namen schreiben?

Java bietet für diesen Zweck das Methodenüberladen.

Schauen wir uns ein Beispiel an, wie man Daten druckt und ein Array aus dem vorherigen Kapitel umkehrt:

java

Main

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

Wir haben die Methode flipArray überladen, um verschiedene Parameter zu akzeptieren und zurückzugeben: int und char. Wenn wir diese Methode aufrufen, kann sie sowohl int als auch char-Typen akzeptieren und zurückgeben.

Lassen Sie uns nun die Methode überladen, um ein Array auf dem Bildschirm anzuzeigen. Diese Methode sollte ebenfalls int und char-Typen akzeptieren und zurückgeben:

java

Main

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 haben wir die Methode printArrayToTheConsole überladen, um int- und char-Werte zu akzeptieren und zurückzugeben.

Kombinieren wir nun die überladenen Methoden und verwenden sie in der main-Methode für ein Array vom Typ int und ein Array vom Typ char:

java

Main

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

Wir haben zwei verschiedene Methoden überladen, indem wir die Möglichkeit hinzugefügt haben, diese Methoden mit Arrays vom Typ char zu verwenden. Wir haben auch die Namen dieser Methoden leicht geändert, da wir sie jetzt mehrmals überladen können, um Werte von verschiedenen Typen zu akzeptieren und zurückzugeben.

Um dies zu überprüfen, haben wir zwei verschiedene Arrays erstellt, eines vom Typ int und das andere vom Typ char, und diese Arrays dann an die überladenen Methoden übergeben, um die korrekten Ergebnisse zu erhalten.

Übrigens sind Ihnen überladene Methoden bereits begegnet. Zum Beispiel ist die String-Methode substring() überladen und kann entweder einen Parameter, int beginIndex, oder zwei Parameter, int beginIndex, int endIndex haben. Methodenüberladung ist sehr nützlich und wird häufig in der Praxis verwendet.

Wie oft können wir eine Methode überladen?

Wie oft können wir eine Methode überladen?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 6
We're sorry to hear that something went wrong. What happened?
some-alt