Zadani parametri Java pomoću preopterećenja metoda

1. Pregled

U ovom kratkom vodiču pokazat ćemo upotrebu preopterećenja metoda za simulaciju zadanih parametara u Javi.

Ovdje kažemo simulirati jer za razliku od nekih drugih OOP jezika (poput C ++ i Scala), Java specifikacija ne podržava dodjeljivanje zadane vrijednosti parametru metode.

2. Primjer

Kao primjer, skuhajmo čaj! Prvo, trebat će nam Čaj POJO:

čaj javne klase {static final int DEFAULT_TEA_POWDER = 1; privatni naziv niza; privatno int mlijeko; privatno booleovsko bilje; privatni int šećer; private int teaPowder; // standardni geteri} 

Evo, Ime je obavezno polje, kao i naše Čaj mora imati barem ime.

Zatim, ne može biti čaja bez čaja u prahu. Dakle, pretpostavit ćemo da korisnik želi standardnih 1 žlica teaPuder u čaju, ako nije osiguran u vrijeme poziva. To je tada naš prvi zadani parametar.

Ostali neobavezni parametri su mlijeko (u ml), bilje (dodati ili ne dodati) i šećer (u žlicama). Ako bilo koja od njihovih vrijednosti nije navedena, pretpostavljamo da je korisnik ne želi.

Pogledajmo kako to postići u Javi pomoću preopterećenja metoda:

javni čaj (naziv niza, int mlijeko, booleovsko bilje, int šećer, int teaPowder) {this.name = name; ovo.mlijeko = mlijeko; ovo.bilja = bilje; ovo.šećer = šećer; this.teaPowder = teaPowder; } javni čaj (naziv niza, int mlijeko, booleovsko bilje, int šećer) {ovo (naziv, mlijeko, bilje, šećer, DEFAULT_TEA_POWDER); } javni čaj (naziv niza, int mlijeko, booleovsko bilje) {ovo (naziv, mlijeko, bilje, 0); } javni čaj (naziv niza, int mlijeko) {ovo (ime, mlijeko, netočno); } javni čaj (naziv niza) {this (name, 0); }

Kao što je vidljivo, ovdje koristimo ulančavanje konstruktora, oblik preopterećenja za pružanje parametara metode s nekim zadanim vrijednostima.

Dodajmo sada jednostavan test kako bismo ovo vidjeli na djelu:

@Test public void whenTeaWithOnlyName_thenCreateDefaultTea () {Tea blackTea = novi čaj ("Crni čaj"); assertThat (blackTea.getName ()). isEqualTo ("Crni čaj"); assertThat (blackTea.getMilk ()). isEqualTo (0); assertThat (blackTea.isHerbs ()). isFalse (); assertThat (blackTea.getSugar ()). isEqualTo (0); assertThat (blackTea.getTeaPowder ()). isEqualTo (Tea.DEFAULT_TEA_POWDER); }

3. Alternative

Postoje i drugi načini za postizanje zadane simulacije parametara u Javi. Neki od njih su:

  • koristeći obrazac Graditelj
  • pomoću Izbornog
  • Dopuštanje nula kao argumenta metode

Evo kako možemo iskoristiti treći način dopuštanja null argumenata u našem primjeru:

javni čaj (Ime niza, Integer mlijeko, Booleovo bilje, Integer šećer, Integer teaPowder) {this.name = name; ovo.mlijeko = mlijeko == null? 0: milk.intValue (); this.herbs = bilje == null? lažno: bilje.booleanValue (); this.sugar = šećer == null? 0: šećer.intValue (); this.teaPowder = teaPowder == null? DEFAULT_TEA_POWDER: teaPowder.intValue (); }

4. Zaključak

U ovom smo članku pogledali korištenje preopterećenja metode za simulaciju zadanih parametara u Javi.

Iako postoje i drugi načini da se to postigne, preopterećenje je najčistije i najjednostavnije. Kao i uvijek, kod je dostupan na GitHub-u.