1. Az return
állítás
Úgy gondolja, hogy már mindent megtanult a Java módszerekről? Bármit is gondolsz tudni, a felét még mindig nem tudod.
Kezdjük valami egyszerűvel. Például a Java rendelkezik egy return utasítással, amely lehetővé teszi az őt hívó metódus azonnali leállítását. Íme a nyilatkozat:
return;
Egyszerű: a magányos szó, return
amelyet pontosvessző követ. Amint a program végrehajtja ezt az utasítást, az aktuális metódus azonnal kilép, és a hívás folytatódik.
Ha return
a metódusban meghívásra kerül main
, akkor a main
metódus azonnal véget ér, és vele az egész program.
Példa:
|
A fill metódus kitölti az átadott tömb egy részét -val value . A tömb kitöltendő részét a from és az indexek határozzák meg to . Ha from kisebb, mint 0 vagy ha to nagyobb, mint a tömb hossza, akkor a metódus azonnal leáll. |
A fenti programnak van egy fill
metódusa, amely kitölti a neki átadott tömböt -val value
. Nem tölti ki a teljes tömböt, csak az indexek from
és az indexek által meghatározott részt to
.
A metódus elején fill
az átadott értékeket ellenőrzik, hogy érvényesek-e. Ha from
kisebb, mint 0, vagy ha to
nagyobb, mint a tömb hossza, akkor a fill
metódus azonnal leáll ( return
utasítást hajt végre).
Ez return
az állítás hasznos: gyakorlatilag minden Java metódusnak van egy, és itt van miért.
2. Eredményes módszerek,void
Ne feledje, egyszer kitaláltuk, hogy vannak állítások, és vannak kifejezések . A kifejezésnek, ellentétben az állításokkal, van egy értéke, amely valahol használható.
A Java-ban pedig a metódusoknak lehet értéke . És ez nagyon jó hír: a metódusok nem csak a bemeneti paraméterek alapján képesek valamit csinálni, hanem például kiértékelni is valamit, és visszaadni a számítás eredményét .
Mellesleg már találkozott ilyen módszerekkel:
|
A abs() metódus duplát ad vissza |
|
A nextInt() metódus egyint |
|
A toUpperCase() metódus visszaadja aString |
|
A copyOf() metódus egyint[] |
Mindegyik metódus csak egy előre meghatározott típusú értéket adhat vissza. A visszatérési típus a metódus deklarálásakor kerül meghatározásra:
public static Type name(parameters)
{
method body
}
Ahol name
a metódus neve, parameters
a metódusparaméterek listája és type
a metódus által visszaadott eredmény típusa.
Azokhoz a metódusokhoz, amelyek semmit sem adnak vissza, van egy speciális helyőrző típus: void
.
Saját metódusát írod, és nem akarsz semmit visszaadni a hívó metódushoz? Csak deklarálja a metódus típusát void
, és a probléma megoldódik. A Java-ban is sok ilyen módszer létezik.
3. Eredmény visszaadása
Csak most találtuk ki, hogyan deklaráljunk egy olyan metódust, amely egy számítás eredményét adja vissza, de hogyan adjuk ezt az eredményt magában a metódusban?
A return
kijelentés itt is segítségünkre van. A módszer eredményének átadása így néz ki:
return value;
Hol return
van egy olyan utasítás, amely azonnal leállítja a metódust. És value
ez az az érték, amelyet a metódus visszatér a hívó metódushoz, amikor kilép. A típusnak value
meg kell egyeznie type
a metódus deklarációban megadottal.
1. példa: A módszer kiszámítja a két szám minimumát:
|
A metódus a minimum két számot adja vissza. Ha a < b visszaküld a Ellenkező esetben vissza b |
2. példa: A metódus megduplázza a neki átadott karakterláncot n
:
|
A metódus két paramétert vesz igénybe – egy karakterláncot és azt, hogy hányszor kell a karakterláncot megismételni. Egy üres karakterlánc jön létre a jövőbeni eredményhez. Az iterációkkal rendelkező ciklusban times egy szóköz és a str karakterlánc hozzáadódik a result karakterlánchoz. A karakterlánc result a metódus eredményeként kerül visszaadásra. |
3. példa: A módszer a maximum két számot számítja ki a háromtagú operátor segítségével:
|
A metódus maximum két számot ad vissza. vissza (ha a > b , akkor a , különben b ) |