Metódy v Jave
1. Úvod
V prostredí Java sú metódy definované tam, kde definujeme obchodnú logiku aplikácie. Definujú interakcie medzi údajmi uzavretými v objekte.
V tomto návode prejdeme si syntaxi metód Java, definíciu podpisu metódy a spôsob volania a preťaženia metód.
2. Syntax metódy
Najprv sa metóda skladá zo šiestich častí:
- Modifikátor prístupu: voliteľne môžeme určiť, odkiaľ kód má prístup k metóde
- Typ vrátenia: typ hodnoty vrátenej metódou, ak existuje
- Identifikátor metódy: názov, ktorý metóde dáme
- Zoznam parametrov: voliteľný zoznam vstupov pre metódu oddelený čiarkami
- Zoznam výnimiek: voliteľný zoznam výnimiek, ktoré môže metóda vyvolať
- Telo: definícia logiky (môže byť prázdna)
Pozrime sa na príklad:
Pozrime sa podrobnejšie na každú z týchto šiestich častí metódy Java.
2.1. Modifikátor prístupu
Modifikátor prístupu nám umožňuje určiť, ktoré objekty môžu mať prístup k metóde. Existujú štyri možné modifikátory prístupu: verejné, chránené, súkromnéa predvolené (nazývané tiež balík-súkromné).
Metóda môže tiež obsahovať statický kľúčové slovo pred alebo po modifikátore prístupu. To znamená, že metóda patrí do triedy a nie do inštancií, a preto ju môžeme zavolať bez vytvorenia inštancie triedy. Metódy bez statický kľúčové slovo sú známe ako inštančné metódy a možno ich vyvolať iba v inštancii triedy.
Pokiaľ ide o výkon, statická metóda sa načíta do pamäte iba raz - počas načítania triedy - a je tak pamäťovo efektívnejšia.
2.2. Typ vrátenia
Metódy môžu vrátiť údaje do kódu, z ktorého boli volané. Metóda môže vrátiť primitívnu hodnotu alebo odkaz na objekt, alebo nemôže vrátiť nič ak použijeme neplatný kľúčové slovo ako návratový typ.
Pozrime sa na príklad a neplatný metóda:
public void printFullName (reťazec krstné meno, reťazec priezvisko) {System.out.println (meno + "" + priezvisko); }
Ak deklarujeme návratový typ, musíme zadať a návrat vyhlásenie v tele metódy. Raz návrat príkaz bol vykonaný, vykonanie tela metódy bude ukončené a ak bude viac príkazov, nebudú spracované.
Na druhej strane a neplatný metóda nevracia žiadnu hodnotu, a teda nemá a návrat vyhlásenie.
2.3. Identifikátor metódy
Identifikátor metódy je názov, ktorý priradíme špecifikácii metódy. Osvedčeným postupom je používať informatívny a popisný názov. Za zmienku stojí, že identifikátor metódy môže mať najviac 65536 znakov (aj tak dlhý názov).
2.4. Zoznam parametrov
Môžeme určiť vstupné hodnoty pre metódu v zozname jeho parametrov, ktorý je uvedený v zátvorkách. Metóda môže mať kdekoľvek od 0 do 255 parametrov, ktoré sú ohraničené čiarkami. Parametrom môže byť objekt, primitív alebo výčet. Anotácie Java môžeme použiť na úrovni parametra metódy (napríklad jarná anotácia @RequestParam).
2.5. Zoznam výnimiek
Môžeme určiť, ktoré výnimky spôsobí metóda, pomocou znaku hodí doložka. V prípade zaškrtnutej výnimky musíme buď vložiť kód do a Skús chytiť doložka alebo musíme poskytnúť a hodí doložka v podpise metódy.
Poďme sa teda pozrieť na zložitejší variant našej predchádzajúcej metódy, ktorý vrhá kontrolovanú výnimku:
public void writeName (názov reťazca) vyhodí IOException {PrintWriter out = nový PrintWriter (nový FileWriter ("OutFile.txt")); out.println ("Meno:" + meno); out.close (); }
2.6. Metóda Body
Poslednou časťou metódy Java je telo metódy, ktoré obsahuje logiku, ktorú chceme vykonať. V tele metódy môžeme napísať toľko riadkov kódu, koľko chceme - alebo vôbec žiadny, v prípade statický metódy. Ak naša metóda deklaruje návratový typ, potom telo metódy musí obsahovať návratový príkaz.
3. Podpis metódy
Podľa definície sa podpis metódy skladá iba z dvoch zložiek - názov metódy a zoznam parametrov.
Poďme teda napísať jednoduchú metódu:
public String getName (String firstName, String lastName) {return firstName + "" + middleName + "" + lastName; }
Podpis tejto metódy je getName (reťazec krstné meno, reťazec priezvisko).
Identifikátor metódy môže byť akýkoľvek identifikátor. Ak sa však riadime bežnými konvenciami kódovania v jazyku Java, identifikátorom metódy by malo byť sloveso s malými písmenami, za ktorým môžu nasledovať prídavné mená a / alebo podstatné mená.
4. Volanie metódy
Poďme to preskúmať ako zavolať metódu v Jave. Po predchádzajúcom príklade predpokladajme, že tieto metódy sú uzavreté v triede Java s názvom PersonName:
public class PersonName {public String getName (String firstName, String lastName) {return firstName + "" + middleName + "" + lastName; }}
Od nášho getName metóda je inštančná metóda a nie a statický metódu, aby bolo možné metódu zavolať getName, musíme vytvoriť inštanciu triedyPersonName:
PersonName personName = new PersonName (); Reťazec fullName = personName.getName ("Alan", "Turing");
Ako vidíme, pomocou vytvoreného objektu nazývame getName metóda.
Na záver sa poďme pozrieť na ako zavolať a statický metóda. V prípade statickej metódy nepotrebujeme na uskutočnenie hovoru inštanciu triedy. Namiesto toho vyvoláme metódu s predponou názvu triedy pred názvom triedy.
Ukážme si použitie variantu z predchádzajúceho príkladu:
public class PersonName {public static String getName (String firstName, String lastName) {return firstName + "" + middleName + "" + lastName; }}
V takom prípade je volanie metódy:
Reťazec fullName = PersonName.getName ("Alan", "Turing");
5. Preťaženie metódy
Java nám umožňuje mať dve alebo viac metód s rovnakým identifikátorom, ale s iným zoznamom parametrov - rôzne podpisy metód. V tomto prípade to hovoríme metóda je preťažená. Poďme na príklad:
public String getName (String firstName, String lastName) {return getName (firstName, "", lastName); } public String getName (String firstName, String middleName, String lastName) {if (! middleName.isEqualsTo ("")) {return firstName + "" + lastName; } návrat krstné meno + "" + stredné meno + "" + priezvisko; }
Preťaženie metód je užitočné v prípadoch, ako je ten v príklade, kde môžeme mať metódu implementujúcu zjednodušenú verziu rovnakej funkcionality.
Nakoniec je dobrým dizajnovým zvykom zabezpečiť, aby sa preťažené metódy správali podobným spôsobom. V opačnom prípade bude kód mätúci, ak sa metóda s rovnakým identifikátorom správa inak.
6. Záver
V tomto tutoriáli sme preskúmali časti syntaxe Java, ktoré sú súčasťou špecifikácie metódy v Jave.
Prešli sme najmä modifikátorom prístupu, návratovým typom, identifikátorom metódy, zoznamom parametrov, zoznamom výnimiek a telom metódy. Potom sme videli definíciu podpisu metódy, ako metódu zavolať a ako metódu preťažiť.
Tu videný kód je ako obvykle k dispozícii na GitHub.