Overbelasting van de Java-methode (met voorbeelden)

In dit artikel leer je over overbelasting van methoden en hoe je dit in Java kunt bereiken met behulp van voorbeelden.

In Java kunnen twee of meer methoden dezelfde naam hebben als ze verschillen in parameters (verschillend aantal parameters, verschillende soorten parameters of beide). Deze methoden worden overbelaste methoden genoemd en deze functie wordt methode-overbelasting genoemd. Bijvoorbeeld:

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

Hier is de func()methode overbelast. Deze methoden hebben dezelfde naam maar accepteren verschillende argumenten.

Opmerking : de retourtypen van de bovenstaande methoden zijn niet hetzelfde. Het is omdat overbelasting van methoden niet wordt geassocieerd met retourtypen. Overbelaste methoden kunnen dezelfde of verschillende retourtypen hebben, maar ze moeten verschillen in parameters.

Waarom overbelasting van de methode?

Stel dat u de gegeven getallen moet optellen, maar er kan een willekeurig aantal argumenten zijn (laten we voor de eenvoud zeggen 2 of 3 argumenten).

Om de taak te volbrengen, kunt u twee methoden maken sum2num(int, int)en respectievelijk sum3num(int, int, int)voor twee en drie parameters. Andere programmeurs, evenals u in de toekomst, kunnen echter in de war raken, aangezien het gedrag van beide methoden hetzelfde is, maar ze verschillen qua naam.

De betere manier om deze taak te volbrengen, is door methoden te overbelasten. En, afhankelijk van het doorgegeven argument, wordt een van de overbelaste methoden aangeroepen. Dit helpt om de leesbaarheid van het programma te vergroten.

Hoe overbelasting van methoden in Java uitvoeren?

Hier zijn verschillende manieren om methode-overbelasting uit te voeren:

1. Overbelasting door het aantal argumenten te wijzigen

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

Uitgang :

 Argumenten: 1 Argumenten: 1 en 4

2. Door het datatype van parameters te wijzigen

 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"); ) ) 

Uitgang :

Kreeg Integer-gegevens. Kreeg String-object.

Hier accepteren beide overbelaste methoden één argument. De een accepteert echter het argument van het type, intterwijl de ander Stringobject accepteert .

Laten we naar een echt voorbeeld kijken:

 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")); ) )

Wanneer u het programma uitvoert, is de uitvoer:

 500 89,993 550,00

Opmerking : in Java kunt u constructors ook op dezelfde manier als methoden overbelasten.

Aanbevolen literatuur: Overbelasting van Java Constructor

Belangrijke punten

  • Twee of meer methoden kunnen dezelfde naam hebben binnen dezelfde klasse als ze verschillende argumenten accepteren. Deze functie staat bekend als methode-overbelasting.
  • Overbelasting van de methode wordt bereikt door:
    • het aantal argumenten wijzigen.
    • of het datatype van argumenten wijzigen.
  • Het is geen methode-overbelasting als we alleen het retourtype van methoden wijzigen. Er moeten verschillen zijn in het aantal parameters.

Interessante artikelen...