Wie Methoden in Java zu Überlastung

Eine Java-Klasse können zwei oder mehrere Methoden mit dem gleichen Namen, sofern diese Verfahren unterschiedliche Parameter akzeptieren. Diese Technik, die genannt Überlastung, ist einer der Schlüssel Flexibilität in Ihren Klassen aufzubauen. Mit Überlastung können Sie verschiedene Möglichkeiten erwarten, dass jemand möchte vielleicht eines Objekts Funktionen aufrufen und dann für jede Alternative ladenen Methoden bieten.

Der Begriff Überlastung ist genau, aber ein wenig unglücklich. Normalerweise, wenn Sie sagen, dass etwas überlastet ist, gibt es ein Problem. Glücklicherweise müssen Sie sich keine Sorgen über Java unter dem Gewicht der überladenen Methoden kollabieren.

Sie sind bereits mit mehreren Klassen, die Methoden sind überlastet, obwohl man es nicht erkennen kann. Die Printwriter Klasse, zum Beispiel (die Sie über System.out Zugriff), definiert 10 Versionen des println Methode, die Sie verschiedene Arten von Daten zu drucken lassen. Die folgenden Zeilen zeigen die Methodendeklaration für jede dieser Überlastungen:

Leere println () void println (boolean x) void println (char x) void println (char [] x) void println (double x) void println (float x) void println (int x) void println (long x) void println (Object x) void println (String x)

Die Grundregel überladene Methoden bei der Erstellung ist, dass jedes Verfahren eine eindeutige Signatur haben. Ein Verfahren des Unterschrift ist die Kombination des Namens und der Anzahl und Typen von Parametern sie akzeptiert. Somit hat jeder der println Methoden eine andere Signatur, denn obwohl alle Methoden den gleichen Namen haben, jede Methode einen anderen Parametertyp akzeptiert.

Zwei Dinge, die sind nicht ein Teil einer Signatur des Verfahrens sind

  • Der Rückgabetyp der Methode: Sie können nicht zwei Methoden mit dem gleichen Namen und Parameter codieren, aber mit unterschiedlichen Rückgabetypen.

  • Die Namen der Parameter: Alles, was der Methode Unterschrift zählt, sind die Typen der Parameter und die Reihenfolge, in der sie erscheinen. So sind die folgenden beiden Methoden haben die gleiche Signatur:

Doppel someMethodOfMine (double x, boolean y) Doppel someMethodOfMine (Doppel param1, boolean param2)

Menü