Programozási nyelvek Java

Hasonló dokumentumok
Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Programozási technológia I.

3. Gyakorlat Ismerkedés a Java nyelvvel

Osztályok. 4. gyakorlat

Programozási nyelvek Java

Programozási nyelvek II.: JAVA, 4. gyakorlat

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

OOP: Java 8.Gy: Abstract osztályok, interfészek

Objektumorientált Programozás VI.

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Programozás I. Első ZH segédlet

8. gyakorlat Pointerek, dinamikus memóriakezelés

3. Osztályok II. Programozás II

és az instanceof operátor

Programozási nyelvek II.: JAVA, 4. gyakorlat

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java gyakorlat feladatai e s megolda sai ( )

1. Alapok. Programozás II

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozás I. Gyakorlás egydimenziós tömbökkel Többdimenziós tömbök Gyakorló feladatok V 1.0 ÓE-NIK-AII,

Java és web programozás

C programozási nyelv Pointerek, tömbök, pointer aritmetika

JAVA PROGRAMOZÁS 2.ELŐADÁS

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Objektumorientált programozás C# nyelven

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Abstract osztályok és interface-ek. 7-dik gyakorlat

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

C++ programozási nyelv Konstruktorok-destruktorok

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

Programozási nyelv Java

Levelezős Programozás beugró (Java) december 1.

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Programozás II. 4. Dr. Iványi Péter

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Programozási nyelvek Java

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

OOP #14 (referencia-elv)

A C programozási nyelv III. Pointerek és tömbök.

Programozási nyelvek Java

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Java programozási nyelv 5. rész Osztályok III.

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

A C programozási nyelv III. Pointerek és tömbök.

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Programozási nyelvek II.: JAVA

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

10. gyakorlat Struktúrák, uniók, típusdefiníciók

Készítette: Nagy Tibor István

Programozási nyelvek II.: JAVA, 3. gyakorlat

OOP: Java 4.Gy: Java osztályok

Szövegek C++ -ban, a string osztály

INFORMATIKA javítókulcs 2016

Objektum Orientált Programozás IV.

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

Programozás I gyakorlat

Java II. I A Java programozási nyelv alapelemei

Programozási nyelvek II.: JAVA

BME MOGI Gépészeti informatika 5.

Java és web programozás

Programozás I. házi feladat

1. Jelölje meg az összes igaz állítást a következők közül!

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

7. fejezet: Mutatók és tömbök

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

OOP: Java 1.Gy: Java alapok

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Bevezetés a programozásba I.

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Felvételi tematika INFORMATIKA

C++ programozási nyelv

Informatika terméktervezőknek

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Java II. I A Java programozási nyelv alapelemei

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

Programozás BMEKOKAA146. Dr. Bécsi Tamás 7. előadás

BME MOGI Gépészeti informatika 13.

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Programozás III A JAVA TECHNOLÓGIA LÉNYEGE. Többlépcsős fordítás JAVA PLATFORM. Platformfüggetlenség

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

RESIDENT EVIL CODENAME: NIK

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

A függvények névvel rendelkező utasításcsoportok, melyeknek információkat adhatunk át, és van egy visszatérési értékük.

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

OOP: Java 8.Gy: Gyakorlás

4. Gy: JAVA osztályok

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r

Globális operátor overloading

Objektumorientált Programozás VI.

OOP: Java 5.Gy: Osztály, referencia, konstruktor

Objektumorientált Programozás IV.

Programozási alapismeretek 4.

Java programozási nyelv 6. rész Java a gyakorlatban

Programozás Minta programterv a 1. házi feladathoz 1.

Átírás:

Programozási nyelvek Java 2. gyakorlat Függvények Általános prototípus Módosítószavak Láthatóság: public, protected, private. Ha nem definiált, akkor úgynevezett package-private láthatóság. Lehet abstract - leszármazottban kötelezően felüldefiniálandó Lehet nal - felüldefiniálhatóság letiltására Lehet static - osztály szintű függvény (megjegyzés: static kontextusból csak static módosítóval ellátott hivatkozás szerepelhet) Egyéb, pl. strictfp, native, synchronized, transient, volatile (utóbbi kettő csak field-ekre). Ezekről később. Visszatérési érték szerinti csoportosítás void esetében eljárás Minden egyéb esetben függvényről beszélünk Szignatúra, paraméterátadás Szignatúra: A függvény neve és paramétereinek típusa. Például: eredmenymeghatarozasa(double, int, int) Minden paraméter érték szerint adódik át, azaz a paraméter helyén szereplő értékről másolat készül. A metódus ezt a másolatot látja, használja. Persze, ha a másolat módosul, az az eredeti értéket nem érinti. DE, amennyiben a paraméter nem valamelyik beépített, egyszerű típusba tartozik, úgy az átadásnál a referenciáról készül másolat, azaz a C++ fogalmai szerint ilyenkor referencia szerinti átadás történik, tehát a hivatkozott objektum a függvény belsejében megváltoztatható.

További típusok Tömbök A tömb adott számú, azonos típusú elemeket tartalmazó adattípus. A tömb indexe 0-val kezdődik. A tömbök egynél több értéket is tárolhatnak, de az elemek száma rögzített. Minden T típushoz létezik tömb. (T[]) A new operátorral dinamikusan lehet létrehozni Inicializálásnál az 1. dimenzió megadása kötelező int arr2[]; int[] arr1 = new int[5]; int arr3[] = { 1,2,3,4,5 }; -> ekkor a fordító hozza létre Elemeinek lekérdezése: arr3[0], arr1[i] Többdimenziós tömbök inicializálásánál az 1. dimenziót kell csak megadni, de ha tudod a többit is, akkor azokat is érdemes: int[][] arr = new int[9][9]; A tömbök mérete a length adatmezővel kérdezhető le Túlindexelés esetén kivétel keletkezik. Érdekesség, hogy nem csak "négyszögletes" kétdimenziós tömböt lehet készíteni, hanem olyat is, ahol az egyes sorok nem azonos hosszúak. String típus A String típus char típusú elemek tömbje. A String típusú objektumok megváltoztathatatlanok (immutable). Amikor módosítunk egy stringet, akkor automatikusan egy új példány jön létre a memóriában, ez pedig nem feltétlenül olcsó művelet. Ha többször van szükségünk erre, akkor használjunk inkább a StringBuilder-t. Műveletek http://download.oracle.com/javase/6/docs/api/java/lang/string.html A substring függvény esetében, amely az eredeti szöveg egy szeletét adja vissza. Ekkor nem keletkezik új tömb, hanem csak az eredeti tömbön beállítja a kezdő- és a végreferenciát. indexof, lastindexof, startswith, length, Szövegkonverzió Stringgé: String s = "" + 1; (precedenciára figyelni!) vagy a tostring() függvény Stringből: Integer.parseInt("1"), Double.parseDouble("2"),...

Stringek összehasonlítása Mint az objektumokat: equals() metódussal az == operátor referencia szerinti összehasonlítást végez csak, nem tartalom szerint "a".equals("a") - érték szerinti összehasonlítás StringBuilder http://download.oracle.com/javase/1.5.0/docs/api/java/lang/stringbuilder.html http://download.oracle.com/javase/tutorial/java/data/buffers.html Ha többször van szükségünk egy String objektum módosítására, akkor használjunk inkább a StringBuilder-t. Automatikusan lefoglal egy nagyobb darab memóriát, és ha ez betelik, akkor allokál egy nagyobb méretű területet és átmásolja magát oda. Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, amiket a program egy tömbben tárol public static void main( String[] args ) Az args tömb tárolja a parancssori paramétereket String formátumban, amelyeket a tömb megfelelő indexelésével érhetünk el C, C++-szal ellentétben a 0-dik indexen lévő argumentum nem a program neve! Paramétereknek a darabszámát könnyedén megállapíthatjuk: args.length, ami egy int értéket ad vissza Ha számokkal akarunk dolgozni, akkor az argumentumokat át kell alakítani (Ez csak akkor fog működni, ha eleve számokat adtunk meg paramétereknek, különben kivétel keletkezik) Átalakításra példa: int i = Integer.parseInt( 12 ); int i = Integer.parseInt(args[0]); double d = Double.parseDouble(args[2]);

Konzolos adatbevitel Scanner Scanner osztálybeli objektummal valósítható meg a konzolos beolvasás. Példa java.util csomagban található Konstruktorában megadható StreamInput és File típusú objektum is o Konzolról való olvasás esetén: System.in o Fileból olvasás esetén: new File(<fájlnév>) java.io csomagban található close(): scanner lezárása nextboolean(): beolvassa és átkonvertálja az értéket nextint(): beolvassa és átkonvertálja az értéket nextlong(): beolvassa és átkonvertálja az értéket nextdouble(): beolvassa és átkonvertálja az értéket next(): beolvassa és átkonvertálja az értéket nextline(): olvas a következő új sorig, és visszatér egy String típussal (beolvasott szöveg) hasnextboolean(): igaz, ha a következő beolvasandó érték boolean típusú hasnextint(): igaz, ha a következő beolvasandó érték int típusú hasnextlong(): igaz, ha a következő beolvasandó érték long típusú hasnextdouble(): igaz, ha a következő beolvasandó érték double típusú hasnext(): igaz, van még mit olvasni hasnextline(): igaz, ha van még egy input sor Ez a kis kódrészlet vár egy inputot a konzolból. Ha egész számot adunk meg, akkor kiírja, különben tovább ugrik a vezérlés.

Feladatok 1. Írj egy ciklust, ami addig olvas a konzolról, amíg egész számot kap. Ezután írja ki a beolvasott számok összegét. 2. Írd át az előző feladatot úgy, h egy test.txt nevű fájlból olvasson. (A fájl a honlapon megtalálható!) 3. Készíts egy függvényt, ami bementként kap egy int típusú elemekből álló tömböt, és végrehajt rajta egy maximumkeresést, majd visszatér az maximum elem indexével. Végül az elem indexét írjuk ki a képernyőre. 4. Készíts a 3. feladathoz egy konzolos menüt! A menüben legyen 2 opció: 1 Konzolról olvasás 2 Fájlból olvasás 1) Konzolos beolvasás esetén először kérjük be a tömb hosszát, majd kérjünk be annyi adatot, amennyi a tömb hossza. A felhasználónak természetesen jelezzük, hogy éppen melyik adatot várjuk. 2) A fájlból olvasás esetén kérje be a fájlnevet, majd olvassa be azt. A fájl első sora a tömb hosszát jelzi, a többi pedig a tömb elemei. Használd a test.txt fájlt. Miután meghatározta a maximális indexet, írja ki a képernyőre, majd kérdezze meg a program, hogy kívánja-e újrafuttatni az alkalmazást. Újrafuttatás esetén jelenítsük meg ismét a főmenüt. 5. Valósítsd meg a mátrixösszeadást! A programnak legyen egy konzolos menüje (hasonlóan a 4. feladathoz). Legelőször be kell kérni egy pozitív egész számot, amely mindkét mátrix sorainak és oszlopainak a száma lesz. A mátrixok négyzetesek (N x N). Ezután be kell kérni a két mátrix adatait. Majd végezd el a mátrixok összeadását, és írasd ki konzolra ez elemeit (mátrix alakban). Végül pedig kérdezze meg a program a konzolban, hogy kívánom-e újrafuttatni a programot.