Java-meetodi ülekoormamine (koos näidetega)

Selles artiklis saate teada meetodite ülekoormamise kohta ja selle kohta, kuidas seda Java abil näidete abil saavutada.

Javas võib kahel või enamal meetodil olla sama nimi, kui need erinevad parameetrite poolest (erinev parameetrite arv, erinevat tüüpi parameetrid või mõlemad). Neid meetodeid nimetatakse ülekoormatud meetoditeks ja seda funktsiooni nimetatakse meetodi ülekoormamiseks. Näiteks:

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

Siin on func()meetod ülekoormatud. Need meetodid kannavad sama nime, kuid aktsepteerivad erinevaid argumente.

Märkus . Ülaltoodud meetodite tagastustüübid pole ühesugused. Selle põhjuseks on asjaolu, et meetodi ülekoormamine ei ole seotud tagasitüüpidega. Ülekoormatud meetoditel võivad olla samad või erinevad tagastustüübid, kuid need peavad parameetrite poolest erinema.

Miks meetodi ülekoormamine?

Oletame, et peate lisama etteantud numbreid, kuid argumente võib olla suvaline arv (ütleme lihtsuse huvides kas 2 või 3 argumenti).

Ülesande täitmiseks saate luua kaks meetodit sum2num(int, int)ning sum3num(int, int, int)vastavalt kahele ja kolmele parameetrile. Siiski võivad teised programmeerijad ja ka teie tulevikus segadusse sattuda, kuna mõlema meetodi käitumine on sama, kuid nad erinevad nimepidi.

Parem viis selle ülesande täitmiseks on meetodite ülekoormamine. Ja sõltuvalt vastuvõetud argumendist kutsutakse ühte ülekoormatud meetoditest. See aitab suurendada programmi loetavust.

Kuidas teostada Java-s meetodi ülekoormamist?

Meetodi ülekoormamise teostamiseks on erinevad viisid.

1. Ülekoormus argumentide arvu muutmisega

 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äljund :

 Argumendid: 1 Argumendid: 1 ja 4

2. Muutes parameetrite andmetüüpi

 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äljund :

Sain täisarvu andmed. Sain Stringi objekti.

Siin nõustuvad mõlemad ülekoormatud meetodid ühe argumendiga. Üks aktsepteerib aga tüübi argumenti, intteine ​​aga Stringobjekti.

Vaatame reaalse maailma näidet:

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

Programmi käivitamisel on väljund järgmine:

 500 89,993 550,00

Märkus . Java-s saate ka konstruktoreid sarnaselt meetoditega üle koormata.

Soovitatav lugemine: Java-konstruktori ülekoormus

Olulised punktid

  • Kahel või enamal meetodil võib sama klassi sees olla sama nimi, kui nad aktsepteerivad erinevaid argumente. Seda funktsiooni nimetatakse meetodi ülekoormamiseks.
  • Meetodi ülekoormamine saavutatakse kas:
    • argumentide arvu muutmine.
    • või argumentide andmetüübi muutmine.
  • See ei ole meetodi ülekoormamine, kui muudame ainult meetodite tagastustüüpi. Parameetrite arv peab olema erinev.

Huvitavad Artiklid...