Bevezetés a Java programozásba Multimédiafejlesztő tanfolyam 2. foglalkozás Készítette: Csekéné Molnár Erika, 2009
1. Tömbök és sztringek Tömb fogalma Deklaráció és helyfoglalás Több dimenziós tömbök A String
1.1 Tömb fogalma Definíció: Egymással összetartozó azonos típusú és méretű adatok csoportja, ahol az elemeket indexel érjük el. Hivatkozni egy x nevű tömb i-dik elemére az i-1 indexel lehet, azaz a x[i-1] kifejezéssel. Pl.: t nevű, 5 elemű tömb, amely egész számokat tárol t[0] 14 t[1] 3 t[2] 47 t[3] 36 t[4] 8
1.2 Deklaráció és helyfoglalás Deklaráció: egy tömbre mutató referencia létrehozása adattípus tömb_név[ ]; Pl.: int t[ ]; Helyfoglalás: tömbobjektum létrehozása a memóriában t = new int[5]; Egy lépésben: int t[ ] = new int[5]; Kezdőérték adás a deklarációban: int t[ ] = { 14, 3, 47, 36, 8}; Tömb elemeinek száma: tömb egyedváltozója t.length (eredménye: 5) Feladat1: Írj programot, amely kiírja a páros számokat 1-től 20-ig, használj tömböt a számok tárolására! (SzamolTomb.java)
1.3 Több dimenziós tömbök Kétdimenziós tömbök: táblázatok ábrázolása, ahol az adatok sorokban és oszlopokban helyezkednek el. Egy elem azonosításához két érték kell: az első a sor száma, a második az oszlop száma. Példa: 2 soros és 3 oszlopos táblázat 18 25 3 4 57 69 int tomb[ ] [ ] = { { 18, 25, 3}, { 4, 57, 69} }; Például: a tomb[1][2] eleme a 69. Feladat: Írj programot, amely kiírja a fenti tomb elemeit táblázatos formában! (Tablazat.java)
1.4 A String Sztring fogalma: karaktersorozat (betű, számjegy, speciális karakter), gyakorlatilag karakterekből álló tömb. Deklarálás és értékadás: String s = „Helló Világ!”; (Értéke nem változtatható, konstans.) Sztringek összefűzése: + műveleti jel segítségével Sztringek néhány metódusa: s.length() string hossza, s.valueOf(p) szöveges típusúvá alakítja a paraméterét, s.charAt(i) a string i-dik pozíciójában lévő karakterét adja Feladat: Írj programot, amely összefűz három sztringet, megadja a karakterek számát és kiírja visszafelé is a szöveget! (Sztring.java)
2. Metódusok Metódusok típusai Deklaráció Metódus hívása metódusban Metódus hívása a main-ben Matematikai függvények
2.1 Metódusok típusai Procedúra (eljárás): Függvény: Speciális visszatérési értéke van: void Nem ad vissza értéket, NINCS return utasítása, Kifejezésen kívül lehet meghívni. Függvény: Kifejezésekben lehet alkalmazni Bemeneti értékekből kimeneti értéket állít elő VAN return utasítása, a mögötte álló kifejezés típusának meg kell egyeznie a függvény visszatérési értékével
2.2 Deklaráció Helye a programban: Általános alakja: A deklaráció bárhol állhat a programban, függvényhívás előtt és után is. DE egy metóduson belül nem lehet másikat definiálni. Általános alakja: visszatérési_érték metódus_neve(paraméterlista){ deklarációk; utasítások; } Például: int fgv(int p){ return p*p; Feladat: Írj programot, amely kiírja 1 és 10 közzé eső számok négyzetét, írj külön eljárást, ami kiírja a számokat és használd az fgv függvényt! (Negyzetszamok.java)
2.3 Metódus hívása metódusban Ha egy metódusban hívunk meg pl. egy függvényt, a függvénynév(bemeneti_paraméter) formában hivatkozunk rá. void kiir(){ for (int i=1; i<=10; i++) System.out.print(fgv(i)+" "); } int fgv(int p) { return p*p; }
2.4 Metódus hívása: a main-ben Objektumreferencia: adott objektumra hivatkozó mutató. Referencia típusú változó deklarálása: Negyzet p; Helyfoglalás a memóriában: p = new Negyzet(); Egy lépésben: Negyzet p = new Negyzet(); Ez a példányosítás. A Negyzet osztályú objektumból új egyedet hozunk létre. Így a p-n keresztűl tudjuk elérni a metódusokat. Egy metódus meghívása a main-ben példánynév.metódusnév formában történik. p.kiir(); public class Negyzetszamok { public static void main(String[] args) { Negyzet p = new Negyzet(); p.kiir(); }
2.5 Matematikai függvények A Math osztály függvényei: Pl. hatványozás: double pow(double alap, double kitevo) négyzetgyök: double sqrt(double alap) abszolút érték: double abs(double alap) kerekítés: double round() véletlen szám: double random() Függvény nevek túlterhelése: ugyanaz a neve, de különböző típusú paraméterei vannak. Pl.: int abs(int alap) Hívásuk osztálynév.metódusnév alapján történik, azaz: Math.random(); Feladat: Írj programot, amely kisorsolja az e heti ötös lottó számokat! Készíts saját metódusokat! (Lotto.java)
3. Statikus adatok Statikus metódusok Statikus változók
3.1 Statikus metódusok A metódus deklarációja a static alapszóval kezdődik. Előnye: nem kell példányosítani az osztályt, a metódus metódusnév alapján meghívható a main-ben. Pl.: (SNegyzet.java) public class SNegyzet { public static void main(String[] args) { kiir(); } static void kiir(){ for (int i=1; i<=10; i++) System.out.print(fgv(i)+" "); static int fgv(int p) { return p*p; } Feladat: Dolgozd át a Lotto.java programot, használj tömböt a számok tárolására és statikus metódusokat! (LottoTomb.java)
3.2 Statikus változók Helyük: a void main eljáráson kívül van Lényege: más eljárás is tudja használni az értékét, változás esetén csak egy helyen kell átírni Konstans értékű változó deklarásása: static int SZAM = 10; Feladat: Írd át a Szamol2.java programot, használd a fenti statikus SZAM konstanst a ciklus végének beállításához. (Szamol3.java)
4. Feladatok Írj programot, amely egy 5 elemű t tömb értékei közül kiválasztja a legkisebbet és a legnagyobbat, átlagot és összeget számol! (Tomb.java) Írj programot, amely az eheti Totó eredményeket listázza ki! (Toto.java)