Überladen von Java-Methoden (mit Beispielen)

In diesem Artikel erfahren Sie anhand von Beispielen, wie Methoden überladen werden und wie Sie dies in Java erreichen können.

In Java können zwei oder mehr Methoden denselben Namen haben, wenn sie sich in ihren Parametern unterscheiden (unterschiedliche Anzahl von Parametern, unterschiedliche Arten von Parametern oder beides). Diese Methoden werden als überladene Methoden bezeichnet, und diese Funktion wird als Methodenüberladung bezeichnet. Beispielsweise:

 void func () (…) void func (int a) (…) float func (double a) (…) float func (int a, float b) (…)

Hier ist die func()Methode überladen. Diese Methoden haben denselben Namen, akzeptieren jedoch unterschiedliche Argumente.

Hinweis : Die Rückgabetypen der oben genannten Methoden sind nicht identisch. Dies liegt daran, dass das Überladen von Methoden nicht mit Rückgabetypen verbunden ist. Überladene Methoden können dieselben oder unterschiedliche Rückgabetypen haben, müssen sich jedoch in den Parametern unterscheiden.

Warum Methodenüberladung?

Angenommen, Sie müssen die Addition bestimmter Zahlen durchführen, es kann jedoch eine beliebige Anzahl von Argumenten geben (der Einfachheit halber entweder 2 oder 3 Argumente).

Um die Aufgabe zu erfüllen, können Sie zwei Methoden erstellen sum2num(int, int)und sum3num(int, int, int)für zwei und drei Parameter sind. Andere Programmierer sowie Sie in Zukunft können jedoch verwirrt sein, da das Verhalten beider Methoden gleich ist, sie sich jedoch nach Namen unterscheiden.

Der bessere Weg, um diese Aufgabe zu erfüllen, ist das Überladen von Methoden. Abhängig vom übergebenen Argument wird eine der überladenen Methoden aufgerufen. Dies trägt zur Verbesserung der Lesbarkeit des Programms bei.

Wie führe ich eine Methodenüberladung in Java durch?

Es gibt verschiedene Möglichkeiten, eine Methodenüberladung durchzuführen:

1. Überladen durch Ändern der Anzahl der Argumente

 class MethodOverloading ( private static void display(int a)( System.out.println("Arguments: " + a); ) private static void display(int a, int b)( System.out.println("Arguments: " + a + " and " + b); ) public static void main(String() args) ( display(1); display(1, 4); ) )

Ausgabe :

 Argumente: 1 Argumente: 1 und 4

2. Durch Ändern des Datentyps der Parameter

 class MethodOverloading ( // this method accepts int private static void display(int a)( System.out.println("Got Integer data."); ) // this method accepts String object private static void display(String a)( System.out.println("Got String object."); ) public static void main(String() args) ( display(1); display("Hello"); ) ) 

Ausgabe :

Ich habe ganzzahlige Daten. String-Objekt erhalten.

Hier akzeptieren beide überladenen Methoden ein Argument. Man akzeptiert jedoch das Argument vom Typ, intwährend andere StringObjekte akzeptieren .

Schauen wir uns ein Beispiel aus der Praxis an:

 class HelperService ( private String formatNumber(int value) ( return String.format("%d", value); ) private String formatNumber(double value) ( return String.format("%.3f", value); ) private String formatNumber(String value) ( return String.format("%.2f", Double.parseDouble(value)); ) public static void main(String() args) ( HelperService hs = new HelperService(); System.out.println(hs.formatNumber(500)); System.out.println(hs.formatNumber(89.9934)); System.out.println(hs.formatNumber("550")); ) )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 500 89.993 550.00

Hinweis : In Java können Sie Konstruktoren auf ähnliche Weise wie Methoden überladen.

Empfohlene Lektüre: Java Constructor Overloading

Wichtige Punkte

  • Zwei oder mehr Methoden können innerhalb derselben Klasse denselben Namen haben, wenn sie unterschiedliche Argumente akzeptieren. Diese Funktion wird als Methodenüberladung bezeichnet.
  • Die Methodenüberladung wird erreicht durch:
    • Ändern der Anzahl der Argumente.
    • oder Ändern des Datentyps von Argumenten.
  • Es ist keine Methodenüberladung, wenn wir nur den Rückgabetyp der Methoden ändern. Es muss Unterschiede in der Anzahl der Parameter geben.

Interessante Beiträge...