Methodenüberladung
Die oben verwendete Max-Methode gilt nur für Daten vom Typ int. Aber was ist, wenn Sie den Maximalwert von zwei Gleitkommadatentypen erhalten möchten?
Die Lösung besteht darin, eine andere Methode mit demselben Namen, aber anderen Parametern zu erstellen, wie im folgenden Code gezeigt:
public static double max(double num1, double num2) { if (num1 > num2) return num1 else return num2;}
Wenn Sie beim Aufruf der max-Methode einen int-Parameter übergeben, wird die max-Methode des int-Parameters aufgerufen.
Wenn ein Double-Parameter übergeben wird, wird der maximale Methodenkörper vom Double-Typ aufgerufen, was als Methodenüberladung bezeichnet wird.
Das heißt, zwei Methoden einer Klasse haben denselben Namen, aber unterschiedliche Parameterlisten.
Der Java-Compiler bestimmt anhand der Methodensignatur, welche Methode aufgerufen werden soll.
Das Überladen von Methoden kann das Programm klarer und leichter lesbar machen. Methoden, die eng verwandte Aufgaben ausführen, sollten denselben Namen verwenden.
Überladene Methoden müssen unterschiedliche Parameterlisten haben. Sie können Methoden nicht überladen, die ausschließlich auf Modifikatoren oder Rückgabetypen basieren.
Variablenbereich
Der Gültigkeitsbereich einer Variablen ist der Teil des Programms, von dem aus auf die Variable verwiesen werden kann.
Innerhalb einer Methode definierte Variablen werden als lokale Variablen bezeichnet.
Der Gültigkeitsbereich einer lokalen Variablen beginnt mit dem Zeitpunkt ihrer Deklaration und endet am Ende des Blocks, der sie enthält.
Lokale Variablen müssen deklariert werden, bevor sie verwendet werden können.
Der Parameterbereich einer Methode umfasst die gesamte Methode. Der Parameter ist eigentlich eine lokale Variable.
Die im Initialisierungsteil der for-Schleife deklarierten Variablen haben in der gesamten Schleife Gültigkeit.
Der Anwendungsbereich der im Schleifenkörper deklarierten Variablen erstreckt sich jedoch von ihrer Deklaration bis zum Ende des Schleifenkörpers. Es enthält Variablendeklarationen wie unten gezeigt:
Sie können eine lokale Variable mit demselben Namen mehrmals innerhalb einer Methode in verschiedenen nicht verschachtelten Blöcken deklarieren, aber Sie können eine lokale Variable nicht zweimal innerhalb eines verschachtelten Blocks deklarieren.