160 likes | 337 Views
Bevezetés a Java programozásba. Multimédiafejlesztő tanfolyam 2. foglalkozás. 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.
E N D
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. • Hivatkozniegy 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ójat.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): • 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: 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évformá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, dekülönböző típusú paraméterei vannak. Pl.: int abs(int alap) • Hívásukosztá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)