Java-metode Overbelastning (med eksempler)

I denne artikkelen lærer du om metodeoverbelastning og hvordan du kan oppnå det i Java ved hjelp av eksempler.

I Java kan to eller flere metoder ha samme navn hvis de er forskjellige i parametere (forskjellig antall parametere, forskjellige typer parametere eller begge deler). Disse metodene kalles overbelastede metoder, og denne funksjonen kalles metodeoverbelastning. For eksempel:

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

Her er func()metoden overbelastet. Disse metodene har samme navn, men godtar forskjellige argumenter.

Merk : Returtypene til metodene ovenfor er ikke de samme. Det er fordi overbelastning av metoder ikke er knyttet til returtyper. Overbelastede metoder kan ha samme eller forskjellige returtyper, men de må være forskjellige i parametere.

Hvorfor metodeoverbelastning?

Anta at du må utføre tillegg av gitte tall, men det kan være et hvilket som helst antall argumenter (la oss si enten 2 eller 3 argumenter for enkelhets skyld).

For å utføre oppgaven kan du opprette to metoder sum2num(int, int)og sum3num(int, int, int)for henholdsvis to og tre parametere. Imidlertid kan andre programmerere, så vel som deg i fremtiden, bli forvirret da oppførselen til begge metodene er den samme, men de er forskjellige etter navn.

Den bedre måten å utføre denne oppgaven på er ved å overbelaste metoder. Og avhengig av argumentet som blir sendt, kalles en av de overbelastede metodene. Dette bidrar til å øke lesbarheten til programmet.

Hvordan utføre metodeoverbelastning i Java?

Her er forskjellige måter å utføre overbelastning av metoder på:

1. Overbelastning ved å endre antall 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); ) )

Utgang :

 Argumenter: 1 Argumenter: 1 og 4

2. Ved å endre datatypen til parametere

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

Utgang :

Fikk helhetsdata. Fikk strengobjekt.

Her godtar begge overbelastede metodene ett argument. Imidlertid aksepterer man argumentets type intmens andre aksepterer Stringobjekt.

La oss 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 kjører programmet, vil utdataene være:

 500 89,993 550,00

Merk : I Java kan du også overbelaste konstruktører på lignende måte som metoder.

Anbefalt lesing: Java Constructor Overloading

Viktige poeng

  • To eller flere metoder kan ha samme navn i samme klasse hvis de godtar forskjellige argumenter. Denne funksjonen er kjent som metodeoverbelastning.
  • Metodeoverbelastning oppnås ved å:
    • endre antall argumenter.
    • eller endre datatypen for argumenter.
  • Det er ikke metodeoverbelastning hvis vi bare endrer returtypen av metoder. Det må være forskjeller i antall parametere.

Interessante artikler...