Java programozás 5. – Metódusok

Metódusok, avagy a programozás igáslovai

A Java készítői rengeteg dolgot megírtak helyettünk, amelyeket kezdő programozóként sokszor úgy használunk, hogy nem is tudatosul. Ezek végzik a munka nagyját, ők azok, akik a változókat kezelik, és a programunk különböző részei között a kapcsolatot tartják. Mielőtt azonban megismernénk őket, említés szintjén tisztázzunk pár rövid mondatban két fogalmat.

Objektumok: Az objektum az adott feladat szempontjából fontos, a valódi világ valamilyen elemének a rá jellemző tulajdonságai és viselkedései által modellezett eleme. Ilyen lehet egy modellezett kutya, a saját tulajdonságaival (név, fajta, szín, magasság, stb), valamit a rá jellemző viselkedések (evés, ivás, ugatás)

Osztály: Megírt kódok, amelyek az objektumok tervrajzai, benne a tulajdonságokkal és a viselkedésekkel. Az objektumokat ezekből hozzuk létre.

Metódusok

Anélkül, hogy a metódusok készítéséről beszélnék, nézzük meg, mik ezek.

A metódusokat tekinthetjük egyfajta üzeneteknek, melyek valamilyen feladat megoldását kérik valakitől. Az üzenet 3 részből állhat.

  1. Címzett objektum vagy osztály
  2. A címzett metódusának neve
  3. Esetleges paraméterek

Az üzenet címzettjét abban az esetben kötelező megadni, ha a címzett nem önmaga. A programozásunk elején, amíg nem készítünk saját objektumokat, javarészt így fogjuk használni a metódusokat, hogy megadjuk a címzettet.

Minden esetben kötelező megadni, hogy melyik metódust szeretnénk használni. A metódusok neve adott osztályon belül rendszerint egyedi. Valójában a metódus neve, a bemenő adatok típusai és száma együttesen kell hogy egyedi legyen. Az ezzel kapcsolatos úgynevezett túlterhelésről később szót ejtek. Különböző kódokban lehetnek azonos nevű metódusok, ilyenkor a metódus meghívását ki kell egészítenünk az objektum vagy osztály nevével,  hogy melyikét szeretnénk használni.

Mivel az üzenetek (metódusok) valamilyen feladat végrehajtását kérik, ezért a feladattal kapcsolatos adatokat is oda lehet adni annak a metódusnak, amelyik azt elvégzi. Természetesen lehet olyan metódus is, ami nem használ bemenő adatokat.

Lássunk pár példát olyan metódusokra, melyeknél a címzettet is meg kell adni. Ezeknél a példáknál a címzett minden esetben egy osztály:

Math.min(23,b);
Math.sqrt(18);
Integer.parseInt("123");
System.out.println("Ez egy rovid mondat.");
  1. két bemenő adat, egy szám és egy számot tartalmazó változó közül a kisebb értéket adja eredményül
  2. megadja 18 négyzetgyökét
  3. egész számmá alakítja a “123” szöveget
  4. kiír egy szöveget a képernyőre

A Java programnyelv metódusait alapvetően két csoportba sorolhatjuk:

  1. metódusok, melyek valamilyen értéket állítanak elő
  2. metódusok, melyek valamilyen tevékenységet hajtanak végre

Az első csoport nagyjából olyan, mint egy táblázatkezelő program függvényei. Ezek a metódusok valamilyen bemenő adatok segítségével számítást végeznek, és adott típusú (szám, szöveg, karakter, stb) eredményt állítanak elő. Ez az eredmény a metódus visszatérési értéke. A bemenő adatok, melyeket innentől nevezzünk paramétereknek, valamilyen változók vagy literálok (a típusnak megfelelő formában megadott értékek), de az sem törvényszerű, hogy legyen bemeneti érték. Vannak metódusok, amelyek bemeneti egy előre meghatározott keretek közötti értéket adnak eredményül. A bemenő adatok száma is sokfajta lehet, de ebből egyelőre legyen elég ennyi.

A második csoportba tartozó metódusok valamilyen tevékenységet hajtanak végre, ide tartozik például a képernyőre való kiíratás.

Ez a tananyag elsődlegesen a gyárilag előre megírt metódusokról szól, a saját magad által megírt metódusok egy másik lecke része lesz. A gyári metódusokat tehát formailag a következőképp lehet használni:

  • Osztalynev.metodus();
  • Osztalynev.metodus( parameter );
  • Osztalynev.metodus( parameter1, parameter2, … );

Ahogy láthatod először hivatkozni kell arra az osztályra, amelyiknek a metódusát használni szeretnéd, aztán a speciális . operátor használatával hivatkozok az osztály adott nevű metódusára. Ez az a két dolog, ami minden esetben kötelező. A harmadik dolog, hogy odaadd a metódusnak azokat az adatokat melyeket neki használnia kell. Vagy azért, hogy egy eredményt állítson elő (1. típus), vagy hogy annak segítségével hajtsa végre a kért tevékenységet.

Minek kell az osztálynév, ha a metódusoknak neve van? Azért, mert létezhet több azonos nevű metódus, (sőt sokszor ez a helyzet), ezért meg kell mondani, hogy ez a metódus melyik osztályba tartozik.

A tanulás elején a Math osztályt szoktuk kiemelni egyszerűbb programok írásakor. Központi metódus természetesen sokkal több van, de a tanulmányaink elején ezekre jó eséllyel szükség lesz:

Math osztály

A Math osztály matematikai témakörrel kapcsolatos metódusokat tartalmaz. A metódusok többsége sokféle számot is elfogad, beleértve egész és valós értékeket is, azok összes altípusával együtt. Sőt, több ezeket keverve is működik. A teljesség igénye nélkül álljanak akkor itt a legfontosabbak:

Math.min(a,b); // a két változó közül a kisebb értéket adja eredményül
Math.random(); // kisorsol egy lebegőpontos számot a [0;1[ intervallumból
Math.round(a); // matematikai szabály szerint kerekíti a változó értékét
Math.abs(a); // az adott változó értékének abszolút értékét adja vissza
Math.sqrt(a); // az adott változó négyzetgyökét adja vissza
Math.pow(a,b); // az a számot a b-edik hatványra emeli
Math.PI; // Pi értékét adja vissza
Math.E; // E értékét adja vissza

Az utolsó kettő kakukktojás, ezek nem metódusok, hanem “beégetett” változók.

Következő lecke: Operátorok

2 Replies to “Java programozás 5. – Metódusok”

  1. Pingback: Java programozás 13. – Osztályok és objektumok |

  2. Pingback: Java programozás 4. – Kiíratás alapjai

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

*

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .