Preobremenitev Java metode (s primeri)

V tem članku boste izvedeli več o preobremenitvi metode in kako jo lahko s pomočjo primerov dosežete v Javi.

V Javi imata lahko dve ali več metod isto ime, če se razlikujeta po parametrih (različno število parametrov, različne vrste parametrov ali oboje). Te metode se imenujejo preobremenjene metode, ta funkcija pa preobremenitev metod. Na primer:

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

Tu je func()metoda preobremenjena. Te metode imajo isto ime, vendar sprejemajo različne argumente.

Opomba : vrste vrnitve zgornjih metod niso enake. To je zato, ker preobremenitev metode ni povezana z vrstami vrnitve. Preobremenjene metode imajo lahko enake ali različne vrste vrnitve, vendar se morajo v parametrih razlikovati.

Zakaj preobremenitev metode?

Recimo, da morate izvesti seštevanje danih števil, vendar je lahko poljubno število argumentov (recimo 2 ali 3 argumenta za preprostost).

Za izvedbo naloge lahko ustvarite dve metodi sum2num(int, int)in sum3num(int, int, int)dva oziroma tri parametre. Vendar se bodo drugi programerji, pa tudi vi, v prihodnosti lahko zmedli, saj sta vedenja obeh metod enaka, vendar se po imenih razlikujeta.

Boljši način za dosego te naloge je preobremenitev metod. In odvisno od podanega argumenta se pokliče ena od preobremenjenih metod. To pomaga povečati berljivost programa.

Kako izvesti preobremenitev metode v Javi?

Tu so različni načini za izvajanje preobremenitve metode:

1. Preobremenitev s spreminjanjem števila argumentov

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

Izhod :

 Argumenti: 1 Argumenti: 1 in 4

2. S spreminjanjem podatkovnega tipa parametrov

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

Izhod :

Imam celoštevilčne podatke. Imam predmet String.

Tu preobremenjeni metodi sprejmeta en argument. Vendar eden sprejme argument tipa, intdrugi pa Stringobjekt.

Oglejmo si primer iz resničnega sveta:

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

Ko zaženete program, bo rezultat:

 500 89,993 550,00

Opomba : V Javi lahko tudi konstruktorje preobremenite na podoben način, kot so metode.

Priporočeno branje: Preobremenitev konstruktorja Java

Pomembne točke

  • Dve ali več metod ima lahko isto ime znotraj istega razreda, če sprejemata različne argumente. Ta funkcija je znana kot preobremenitev metode.
  • Preobremenitev metode se doseže z:
    • spreminjanje števila argumentov.
    • ali spreminjanje podatkovne vrste argumentov.
  • Ne gre za preobremenitev metode, če spremenimo samo vrsto vrnitve metod. Razlike v številu parametrov morajo biti.

Zanimive Članki...