Java-menetelmän ylikuormitus (esimerkkien kanssa)

Tässä artikkelissa opit menetelmien ylikuormituksesta ja siitä, miten voit saavuttaa sen Java-sovelluksessa esimerkkien avulla.

Java-ohjelmassa kahdella tai useammalla menetelmällä voi olla sama nimi, jos ne eroavat toisistaan ​​parametreissa (eri parametrien lukumäärä, erityyppiset parametrit tai molemmat). Näitä menetelmiä kutsutaan ylikuormitetuiksi menetelmiksi ja tätä ominaisuutta kutsutaan menetelmien ylikuormitukseksi. Esimerkiksi:

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

Tässä func()menetelmä on ylikuormitettu. Näillä menetelmillä on sama nimi, mutta ne hyväksyvät eri argumentit.

Huomaa : Edellä olevien menetelmien palautustyypit eivät ole samat. Tämä johtuu siitä, että menetelmän ylikuormitus ei liity palautustyyppeihin. Ylikuormitetuilla menetelmillä voi olla samat tai erilaiset palautustyypit, mutta niiden on vaihdeltava parametrien mukaan.

Miksi menetelmä ylikuormittaa?

Oletetaan, että sinun on suoritettava annettujen numeroiden lisääminen, mutta argumentteja voi olla mikä tahansa määrä (sanotaan joko 2 tai 3 argumenttia yksinkertaisuuden vuoksi).

Tehtävän suorittamiseksi voit luoda kaksi menetelmää sum2num(int, int)ja sum3num(int, int, int)kahdelle ja kolmelle parametrille. Kuitenkin muut ohjelmoijat, samoin kuin sinäkin tulevaisuudessa, voivat hämmentyä, koska molempien menetelmien käyttäytyminen on sama, mutta ne eroavat toisistaan ​​nimen mukaan.

Parempi tapa suorittaa tämä tehtävä on ylikuormittaa menetelmiä. Ja lähetetystä argumentista riippuen kutsutaan yhtä ylikuormitetuista menetelmistä. Tämä auttaa lisäämään ohjelman luettavuutta.

Kuinka suorittaa menetelmän ylikuormitus Java-ohjelmassa?

Tässä on erilaisia ​​tapoja suorittaa menetelmän ylikuormitus:

1. Ylikuormittaminen muuttamalla argumenttien määrää

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

Tuotos :

 Väitteet: 1 Väitteet: 1 ja 4

2. Muuttamalla parametrien tietotyyppiä

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

Tuotos :

Sain kokonaislukutiedot. Sai merkkijono-objektin.

Tässä molemmat ylikuormitetut menetelmät hyväksyvät yhden argumentin. Yksi hyväksyy kuitenkin tyypin argumentin, intkun taas toinen Stringobjektin.

Katsotaanpa tosielämän esimerkkiä:

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

Kun suoritat ohjelmaa, tulos on:

 500 89,993 550,00

Huomaa : Java-ohjelmassa voit myös ylikuormittaa rakentajia samalla tavalla kuin menetelmiä.

Suositeltava lukeminen: Java Constructor Overloading

Tärkeitä seikkoja

  • Kahdella tai useammalla menetelmällä voi olla sama nimi saman luokan sisällä, jos ne hyväksyvät erilaiset argumentit. Tätä ominaisuutta kutsutaan menetelmän ylikuormitukseksi.
  • Menetelmän ylikuormitus saavutetaan joko:
    • argumenttien lukumäärän muuttaminen.
    • tai muuttamalla argumenttien tietotyyppiä.
  • Menetelmän ylikuormitus ei ole, jos muutamme vain palautustyyppisiä menetelmiä. Parametrien lukumäärässä on oltava eroja.

Mielenkiintoisia artikkeleita...