„Java“ metodo perkrova (su pavyzdžiais)

Šiame straipsnyje sužinosite apie metodo perkrovą ir kaip tai pasiekti naudojant „Java“ pavyzdžių pagalba.

„Java“ programoje du ar daugiau metodų gali turėti tą patį pavadinimą, jei jie skiriasi parametrais (skirtingas parametrų skaičius, skirtingų tipų parametrai arba abu). Šie metodai vadinami perkrautais metodais, o ši funkcija vadinama perkrovos metodais. Pavyzdžiui:

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

Čia func()metodas perkrautas. Šie metodai turi tą patį pavadinimą, tačiau priima skirtingus argumentus.

Pastaba : Pirmiau pateiktų metodų grąžinimo tipai nėra vienodi. Taip yra todėl, kad metodo perkrova nėra susijusi su grąžinimo tipais. Perkrautų metodų grąžinimo tipai gali būti vienodi arba skirtingi, tačiau jie turi skirtis parametrais.

Kodėl metodas perkraunamas?

Tarkime, jūs turite pridėti nurodytus skaičius, bet argumentų gali būti bet koks skaičius (tarkime, kad 2 arba 3 argumentai yra paprastesni).

Norėdami atlikti užduotį, galite sukurti du metodus sum2num(int, int)ir sum3num(int, int, int)atitinkamai du ir tris parametrus. Tačiau kiti programuotojai, taip pat jūs, ateityje gali būti supainioti, nes abiejų metodų elgesys yra tas pats, tačiau jie skiriasi pagal pavadinimą.

Geresnis būdas atlikti šią užduotį - perkrauti metodus. Atsižvelgiant į pateiktą argumentą, iškviečiamas vienas iš perkrautų metodų. Tai padeda pagerinti programos skaitomumą.

Kaip atlikti metodo perkrovą „Java“?

Štai keli būdai, kaip atlikti metodo perkrovą:

1. Perkrovimas keičiant argumentų skaičių

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

Išvestis :

 Argumentai: 1 Argumentai: 1 ir 4

2. Keičiant parametrų duomenų tipą

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

Išvestis :

Turite sveikojo skaičiaus duomenis. Gavo String objektą.

Čia abu perkrauti metodai priima vieną argumentą. Tačiau vienas priima tipo argumentą, into kitas - Stringobjektą.

Pažvelkime į realaus pasaulio pavyzdį:

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

Kai paleisite programą, išvestis bus:

 500 89,993 550,00

Pastaba : „Java“ taip pat galite perkrauti konstruktorius panašiai kaip metodai.

Rekomenduojamas skaitymas: „ Java Constructor Overloading“

Svarbūs dalykai

  • Du ar daugiau metodų gali turėti tą patį pavadinimą tos pačios klasės viduje, jei jie priima skirtingus argumentus. Ši funkcija yra vadinama metodo perkrova.
  • Metodo perkrova pasiekiama:
    • keičiant argumentų skaičių.
    • arba keičiant argumentų duomenų tipą.
  • Tai nėra metodo perkrovimas, jei keičiame tik grąžinimo metodų tipą. Parametrų skaičius turi skirtis.

Įdomios straipsniai...