Módszerek Java-ban
1. Bemutatkozás
A Java-ban a módszerekkel határozhatjuk meg az alkalmazás üzleti logikáját. Meghatározzák az objektumba zárt adatok közötti kölcsönhatásokat.
Ebben az oktatóanyagban áttekintjük a Java metódusok szintaxisát, a metódus aláírásának meghatározását, valamint a módszerek meghívásának és túlterhelésének módját.
2. Módszer szintaxisa
Először egy módszer hat részből áll:
- Hozzáférés-módosító: opcionálisan megadhatjuk, hogy a kód honnan érhető el a módszer
- Vissza típus: a módszer által adott érték típusa, ha van ilyen
- Módszer azonosítója: a módszernek adott név
- Paraméterlista: opcionálisan vesszővel elválasztott beviteli lista a módszerhez
- Kivételek listája: a metódus által dobható kivételek opcionális listája
- Test: a logika meghatározása (lehet üres)
Lássunk egy példát:
Vizsgáljuk meg közelebbről a Java módszer mind a hat részét.
2.1. Hozzáférés-módosító
A hozzáférés-módosító lehetővé teszi, hogy meghatározzuk, mely objektumok férhetnek hozzá a módszerhez. Négy lehetséges hozzáférés-módosító létezik: nyilvános, védett, magán, és alapértelmezett (más néven: csomag-privát).
Egy metódus tartalmazhatja a statikus kulcsszó a hozzáférés-módosító előtt vagy után. Ez azt jelenti, hogy a metódus az osztályhoz tartozik és nem a példányokhoz, ezért a metódust úgy hívhatjuk meg, hogy nem hozunk létre az osztály egy példányát. Módszerek a statikus kulcsszó példány metódusok néven ismert, és csak az osztály egy példányára lehet meghívni.
Ami a teljesítményt illeti, egy statikus módszer csak egyszer kerül be a memóriába - az osztálybetöltés során -, és ezáltal hatékonyabb a memóriában.
2.2. Return Type
A módszerek visszaadhatják az adatokat arra a kódra, ahonnan hívták őket. Egy módszer visszaadhat primitív értéket vagy objektum hivatkozást, vagy nem adhat vissza semmit ha használjuk a üres kulcsszó visszatérési típusként.
Lássunk egy példát a üres módszer:
public void printFullName (String keresztnév, String vezetéknév) {System.out.println (keresztnév + "" + vezetékNév); }
Ha deklarálunk egy visszatérési típust, akkor meg kell adnunk a Visszatérés utasítás a módszer törzsében. Egyszer a Visszatérés utasítás végrehajtásra került, a method törzs végrehajtása befejeződik, és ha több utasítás van, akkor ezeket nem dolgozzuk fel.
Másrészt a üres A metódus nem ad vissza értéket, és ezért nem rendelkezik a-val Visszatérés nyilatkozat.
2.3. Method Identifier
A metódusazonosító az a név, amelyet a metódus specifikációhoz rendelünk. Jó gyakorlat informatív és leíró név használata. Érdemes megemlíteni, hogy a metódusazonosító legfeljebb 65536 karakterből állhat (ennek ellenére hosszú név).
2.4. Paraméterlista
Tudunk adja meg a módszer bemeneti értékeit paraméterlistájában, amely zárójelben található. A módszer 0 és 255 közötti paramétereket tartalmazhat, vesszővel határolva. A paraméter lehet objektum, primitív vagy felsorolás. Java megjegyzéseket használhatunk a metódus paraméter szintjén (például a tavaszi annotáció @RequestParam).
2.5. Kivételek listája
A metódus segítségével megadhatjuk, hogy mely kivételeket dobja el egy módszer dob kikötés. Ellenőrzött kivétel esetén vagy be kell csatolnunk a kódot az a-ba próbáld elkapni záradékot, vagy meg kell adnunk a dob záradék a metódus aláírásában.
Vessünk egy pillantást az előző módszerünk egy összetettebb változatára, amely bejelöl egy kivételt:
public void writeName (karakterlánc neve) kidobja az IOException-t {PrintWriter out = new PrintWriter (new FileWriter ("OutFile.txt")); out.println ("Név:" + név); out.close (); }
2.6. Módszer Test
A Java metódus utolsó része a method törzs, amely tartalmazza a végrehajtani kívánt logikát. A method törzsbe annyi kódsort írhatunk, amennyit csak akarunk - vagy egyáltalán sem statikus mód. Ha a módszerünk visszatérési típust deklarál, akkor a method törzsnek tartalmaznia kell egy return utasítást.
3. Módszer Aláírás
Meghatározása szerint a metódus aláírás csak két komponensből áll - a módszer nevét és paraméterlistáját.
Írjunk tehát egy egyszerű módszert:
public String getName (String keresztnév, String vezetéknév) {return keresztnév + "" + középnév + "" + vezetékNév; }
Ennek a módszernek az aláírása: getName (karakterlánc keresztnév, karakterlánc vezetéknév).
A metódusazonosító bármilyen azonosító lehet. Ha azonban a Java általános kódolási szokásait követjük, akkor a metódusazonosítónak kisbetűs igének kell lennie, amelyet melléknevek és / vagy főnevek követhetnek.
4. Módszer hívása
Most pedig fedezzük fel hogyan hívhatunk metódust Java-ban. Az előző példát követve tegyük fel, hogy ezek a módszerek az úgynevezett Java osztályba vannak zárva SzemélyNév:
public class Személynév {public String getName (String keresztnév, String vezetékNév) {return keresztnév + "" + középnév + "" + vezetékNév; }}
Mivel a mi getName A metódus egy példány metódus, és nem a statikus metódus, a metódus meghívása érdekében getName, meg kell hozzon létre egy példányt az osztálybólSzemélyNév:
PersonName personName = új PersonName (); Karakterlánc fullName = personName.getName ("Alan", "Turing");
Mint láthatjuk, a létrehozott objektumot használjuk a getName módszer.
Végül vessünk egy pillantást hogyan kell felhívni a statikus módszer. Statikus módszer esetén nincs szükség osztálypéldányra a hívás kezdeményezéséhez. Ehelyett a metódust hívjuk meg, amelynek neve az osztály neve előtt szerepel.
Bemutassuk az előző példa egyik változatát:
public class PersonName {public static String getName (String keresztnév, String vezetéknév) {return keresztnév + "" + középnév + "" + vezetékNév; }}
Ebben az esetben a metódus hívása:
String fullName = SzemélyNév.getName ("Alan", "Turing");
5. Módszer Túlterhelés
A Java lehetővé teszi számunkra, hogy két vagy több módszer ugyanazzal az azonosítóval, de eltérő paraméterlistával - különböző metódus-aláírások. Ebben az esetben ezt mondjuk a módszer túlterhelt. Nézzünk egy példát:
public String getName (String keresztnév, String vezetéknév) {return getName (keresztnév, "", vezetéknév); } public String getName (String keresztnév, String középnév, String vezetéknév) {if (! middleName.isEqualsTo ("")) {return firstName + "" + vezetékNév; } return firstName + "" + középnév + "" + vezetékNév; }
A módszer túlterhelése hasznos olyan esetekben, mint a példában, ahol rendelkezhetünk módszerrel ugyanazon funkció egyszerűsített változatának megvalósításával.
Végül egy jó tervezési szokás annak biztosítása, hogy a túlterhelt módszerek hasonló módon viselkedjenek. Ellenkező esetben a kód zavaró lesz, ha egy azonos azonosítóval rendelkező módszer más módon viselkedik.
6. Következtetés
Ebben az oktatóanyagban megvizsgáltuk a Java szintaxisának részeit, amikor a metódust megadtuk a Java-ban.
Különösen a hozzáférés-módosítót, a visszatérési típust, a metódusazonosítót, a paraméterlistát, a kivétellistát és a metódustestet néztük át. Ezután megláttuk a módszer aláírásának meghatározását, a módszer meghívását és a módszer túlterhelését.
Szokás szerint az itt látható kód elérhető a GitHubon.