Supraîncărcarea metodei Java (cu exemple)

În acest articol, veți afla despre supraîncărcarea metodelor și despre cum o puteți realiza în Java cu ajutorul exemplelor.

În Java, două sau mai multe metode pot avea același nume dacă diferă în parametri (număr diferit de parametri, tipuri diferite de parametri sau ambii). Aceste metode se numesc metode supraîncărcate și această caracteristică se numește supraîncărcare metodă. De exemplu:

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

Aici, func()metoda este supraîncărcată. Aceste metode au același nume, dar acceptă argumente diferite.

Notă : tipurile de returnare ale metodelor de mai sus nu sunt aceleași. Acest lucru se datorează faptului că supraîncărcarea metodelor nu este asociată cu tipurile de returnare. Metodele supraîncărcate pot avea aceleași sau diferite tipuri de returnare, dar trebuie să difere în parametri.

De ce supraîncărcarea metodelor?

Să presupunem că trebuie să efectuați adunarea de numere date, dar poate exista orice număr de argumente (să spunem fie 2, fie 3 argumente pentru simplitate).

Pentru a îndeplini sarcina, puteți crea două metode sum2num(int, int)și respectiv sum3num(int, int, int)doi și trei parametri. Cu toate acestea, alți programatori, precum și dvs. în viitor, se pot confunda, deoarece comportamentul ambelor metode este același, dar diferă prin nume.

Cel mai bun mod de a realiza această sarcină este prin supraîncărcarea metodelor. Și, în funcție de argumentul trecut, se numește una dintre metodele supraîncărcate. Acest lucru ajută la creșterea lizibilității programului.

Cum se efectuează supraîncărcarea metodelor în Java?

Iată diferite moduri de a efectua supraîncărcarea metodei:

1. Supraîncărcare prin schimbarea numărului de argumente

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

Ieșire :

 Argumente: 1 Argumente: 1 și 4

2. Prin modificarea tipului de date al parametrilor

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

Ieșire :

Am obținut date întregi. Obiect String Got.

Aici, ambele metode supraîncărcate acceptă un argument. Cu toate acestea, unul acceptă argumentul de tip, în inttimp ce altul acceptă Stringobiectul.

Să vedem un exemplu din lumea reală:

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

Când rulați programul, ieșirea va fi:

 500 89,993 550,00

Notă : În Java, puteți supraîncărca constructorii într-un mod similar, ca și metodele.

Lectură recomandată: supraîncărcare a constructorului Java

Puncte importante

  • Două sau mai multe metode pot avea același nume în aceeași clasă dacă acceptă argumente diferite. Această caracteristică este cunoscută sub numele de supraîncărcare a metodei.
  • Supraîncărcarea metodei se realizează prin:
    • schimbarea numărului de argumente.
    • sau schimbarea tipului de date al argumentelor.
  • Nu este o supraîncărcare a metodelor dacă schimbăm doar tipul de returnare a metodelor. Trebuie să existe diferențe în numărul de parametri.

Articole interesante...