Java-metode Overbelastning (med eksempler)

I denne artikel lærer du om metodeoverbelastning, og hvordan du kan opnå det i Java ved hjælp af eksempler.

I Java kan to eller flere metoder have samme navn, hvis de adskiller sig i parametre (forskelligt antal parametre, forskellige typer parametre eller begge dele). Disse metoder kaldes overbelastede metoder, og denne funktion kaldes metodeoverbelastning. For eksempel:

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

Her er func()metoden overbelastet. Disse metoder har samme navn, men accepterer forskellige argumenter.

Bemærk : Returtyperne af ovenstående metoder er ikke de samme. Det er fordi metodeoverbelastning ikke er forbundet med returtyper. Overbelastede metoder kan have de samme eller forskellige returtyper, men de skal være forskellige i parametre.

Hvorfor metode overbelastning?

Antag, at du skal udføre tilføjelsen af ​​givne tal, men der kan være et hvilket som helst antal argumenter (lad os sige enten 2 eller 3 argumenter for enkelheds skyld).

For at udføre opgaven kan du oprette to metoder sum2num(int, int)og henholdsvis sum3num(int, int, int)to og tre parametre. Imidlertid kan andre programmører såvel som dig i fremtiden blive forvirrede, da begge metoders adfærd er den samme, men de adskiller sig efter navn.

Den bedre måde at udføre denne opgave på er ved at overbelaste metoder. Og afhængigt af argumentet, der kaldes, kaldes en af ​​de overbelastede metoder. Dette hjælper med at øge læsbarheden af ​​programmet.

Hvordan udføres metodeoverbelastning i Java?

Her er forskellige måder at udføre metodeoverbelastning på:

1. Overbelastning ved at ændre antallet af argumenter

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

Output :

 Argumenter: 1 Argumenter: 1 og 4

2. Ved at ændre datatypen for parametre

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

Output :

Fik data om heltal. Fik strengobjekt.

Her accepterer begge overbelastede metoder ét argument. Man accepterer dog argumentets type, intmens andre accepterer Stringobjekt.

Lad os se på et eksempel fra den virkelige verden:

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

Når du kører programmet, vil output være:

 500 89,993 550,00

Bemærk : I Java kan du også overbelaste konstruktører på lignende måde som metoder.

Anbefalet læsning: Java Constructor Overloading

Vigtige punkter

  • To eller flere metoder kan have samme navn inden for samme klasse, hvis de accepterer forskellige argumenter. Denne funktion kaldes metodeoverbelastning.
  • Metodeoverbelastning opnås ved enten:
    • ændring af antallet af argumenter.
    • eller ændre datatypen af ​​argumenter.
  • Det er ikke metodeoverbelastning, hvis vi kun ændrer returtypen af ​​metoder. Der skal være forskelle i antallet af parametre.

Interessante artikler...