Preťaženie metódy Java (s príkladmi)

V tomto článku sa dozviete o preťažení metód a o tom, ako to dosiahnuť v prostredí Java pomocou príkladov.

V prostredí Java môžu mať dve alebo viac metód rovnaký názov, ak sa líšia v parametroch (odlišný počet parametrov, rôzne typy parametrov alebo oboje). Tieto metódy sa nazývajú preťažené metódy a táto funkcia sa nazýva preťaženie metód. Napríklad:

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

Tu je func()metóda preťažená. Tieto metódy majú rovnaký názov, ale akceptujú rôzne argumenty.

Poznámka : Návratové typy vyššie uvedených metód nie sú rovnaké. Je to preto, lebo preťaženie metód nie je spojené s návratovými typmi. Preťažené metódy môžu mať rovnaké alebo rôzne typy návratnosti, musia sa však líšiť v parametroch.

Prečo preťaženie metódou?

Predpokladajme, že musíte vykonať sčítanie daných čísel, ale môže existovať ľubovoľný počet argumentov (pre zjednodušenie povedzme 2 alebo 3 argumenty).

Za účelom dosiahnutia úlohy, môžete vytvoriť dve metódy sum2num(int, int), a sum3num(int, int, int)počas dvoch až troch parametrov, resp. Avšak ostatní programátori, ako aj vy v budúcnosti, môžu byť zmätení, pretože správanie oboch metód je rovnaké, líšia sa však názvom.

Lepšou cestou na splnenie tejto úlohy je preťaženie metód. A v závislosti na zadanom argumente sa volá jedna z preťažených metód. To pomáha zvyšovať čitateľnosť programu.

Ako vykonať preťaženie metód v Jave?

Tu je niekoľko spôsobov, ako vykonať preťaženie metódy:

1. Preťaženie zmenou počtu 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); ) )

Výstup :

 Argumenty: 1 Argumenty: 1 a 4

2. Zmenou dátového typu 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"); ) ) 

Výstup :

Mám celočíselné údaje. Mám objekt typu String.

Tu obidve preťažené metódy prijímajú jeden argument. Jeden však prijíma argument typu, intzatiaľ čo druhý prijíma Stringobjekt.

Pozrime sa na príklad zo skutočného 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")); ) )

Po spustení programu bude výstup:

 500 89,993 550,00

Poznámka : V prostredí Java môžete tiež preťažovať konštruktory podobným spôsobom ako metódy.

Odporúčané čítanie: Preťaženie Java Constructor

Dôležité body

  • Dve alebo viac metód môže mať v rámci tej istej triedy rovnaký názov, ak akceptujú rôzne argumenty. Táto funkcia sa nazýva preťaženie metódy.
  • Preťaženie metódy sa dosiahne buď:
    • zmena počtu argumentov.
    • alebo zmena dátového typu argumentov.
  • Nejde o preťaženie metód, ak zmeníme iba návratový typ metód. V počte parametrov musia byť rozdiely.

Zaujímavé články...