Java módszer túlterhelése (példákkal)

Ebben a cikkben megismerheti a módszerek túlterhelését és azt, hogy miként érheti el azt a Java-ban példák segítségével.

A Java-ban két vagy több metódusnak ugyanaz lehet a neve, ha paramétereikben különböznek (eltérő számú paraméter, különböző típusú paraméterek vagy mindkettő). Ezeket a módszereket túlterhelt metódusoknak, ezt a funkciót pedig metódustúlterhelésnek nevezzük. Például:

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

Itt a func()módszer túlterhelt. Ezeknek a módszereknek ugyanaz a neve, de különböző érveket fogadnak el.

Megjegyzés : A fenti módszerek visszatérési típusai nem azonosak. Ennek oka, hogy a módszer túlterhelése nincs társítva visszatérési típusokkal. A túlterhelt módszerek azonos vagy különböző visszatérési típusokkal rendelkezhetnek, de paramétereikben különbözniük kell.

Miért módszer túlterhelés?

Tegyük fel, hogy el kell végeznie a megadott számok hozzáadását, de tetszőleges számú argumentum lehet (mondjuk az egyszerűség kedvéért 2 vagy 3 érvet).

A feladat végrehajtásához két módszert hozhat létre, sum2num(int, int)illetve sum3num(int, int, int)két, illetve három paraméterhez. Ugyanakkor más programozók, valamint Ön a jövőben is összezavarodhatnak, mivel mindkét módszer viselkedése azonos, de név szerint eltér egymástól.

A feladat végrehajtásának jobb módja a módszerek túlterhelése. És az átadott argumentumtól függően az egyik túlterhelt metódust hívják meg. Ez hozzájárul a program olvashatóságának növeléséhez.

Hogyan lehet végrehajtani a módszer túlterhelését a Java-ban?

A módszer túlterhelésének különböző módjai vannak:

1. Túlterhelés az argumentumok számának megváltoztatásával

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

Kimenet :

 Érvek: 1 Érvek: 1 és 4

2. A paraméterek adattípusának megváltoztatásával

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

Kimenet :

Egész számadatokat kaptam. Megvan a String objektum.

Itt mindkét túlterhelt módszer elfogad egy argumentumot. Az egyik azonban elfogadja a típus argumentumát, intmíg a másik az Stringobjektumot.

Nézzünk meg egy valós példát:

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

A program futtatásakor a kimenet a következő lesz:

 500 89,993 550,00

Megjegyzés : A Java-ban a konstruktorokat is hasonló módon túlterhelheti, mint például a módszereket.

Ajánlott olvasmány: Java Constructor Overloading

Fontos szempontok

  • Két vagy több metódusnak ugyanaz a neve lehet ugyanazon osztályon belül, ha különböző argumentumokat fogadnak el. Ez a szolgáltatás úgynevezett módszer túlterhelés.
  • A módszer túlterhelését a következők egyikével lehet elérni:
    • az argumentumok számának megváltoztatása.
    • vagy az argumentumok adattípusának megváltoztatása.
  • Nem a módszer túlterhelése, ha csak a metódusok visszatérési típusát változtatjuk meg. A paraméterek számában különbségeknek kell lennie.

érdekes cikkek...