Programozás I. Második ZH segédlet

Hasonló dokumentumok
Programozás I. Második ZH segédlet

Programozás I. 8. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

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

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

7. K: JAVA alapok Konzultáció

Programozás I. Első ZH segédlet

OOP: Java 1.Gy: Java alapok

Programozási technológia

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?

Segédanyag: Java alkalmazások gyakorlat

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

Informatika terméktervezőknek

Generikus osztályok, gyűjtemények és algoritmusok

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

Programozási nyelvek II.: JAVA

Programozási nyelvek Java

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

Java programozási nyelv

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

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

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

OOP: Java 8.Gy: Gyakorlás

Programozási technológia

Osztályszintű elérés, kivételkezelés, fájlkezelés

Magas szintű programozási nyelvek 2 Előadás jegyzet

.Net adatstruktúrák. Készítette: Major Péter

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

Java gyakorlat feladatai e s megolda sai ( )

Programozási nyelvek Java

4. Gy: JAVA osztályok

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Kivételkezelés, naplózás. Exception handling, logging

Dinamikus adatszerkezetek. 2D generikus tömb: C++ 2D generikus tömb: C++

Dinamikus adatszerkezetek. 2D generikus tömb: C++ 2D generikus tömb: C++ 2D tömb: Java versus C++ 2D tömb: Java.

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

és az instanceof operátor

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész

A C# programozási nyelv alapjai

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

Szoftvertechnológia alapjai Java előadások

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Java osztálykönyvtár és használata

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

BME MOGI Gépészeti informatika 4.

Generikus Típusok, Kollekciók

Globális operátor overloading

Imperatív programozás

Objektumorientált programozás C# nyelven III.

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

Programozási nyelvek Java

Programozási nyelvek II.: JAVA

OOP: Java 6.Gy: Java osztályok. Definíció, static, túlterhelés

Osztályok. 4. gyakorlat

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

JAVA PROGRAMOZÁS 3.ELŐADÁS

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

OOP: Java 4.Gy: Java osztályok

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

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

S ha kettészelik is: balfelöl belőle Valamivel mindig - Valamivel mindiq több marad. (Nyugat )

Objektumorientált programozás C# nyelven III.

Java II. I A Java programozási nyelv alapelemei

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

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Java IX. telkezelés a Java-ban

3. Osztályok II. Programozás II

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

Objektumorientált programozás C# nyelven

503.AA Megoldo Arisztid 503.A

Smalltalk 2. Készítette: Szabó Éva

Algoritmusok és adatszerkezetek II.

Java IX. telkezelés a Java-ban

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Reader /Writer InputStreamReader, OutputStreamWriter

3. Gyakorlat Ismerkedés a Java nyelvvel

Objektumorientált programozás C# nyelven

Adatszerkezetek és algoritmusok

Programozás II. labor

Segédanyag: Java alkalmazások gyakorlat

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1

C# osztályok. Krizsán Zoltán

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben

Java és web programozás

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

A C++ Standard Template Library rövid összefoglalás

Java programozási nyelv 4. rész Osztályok II.

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

Bánsághi Anna

JavaServer Pages (JSP) (folytatás)

Web-technológia PHP-vel

Mi a különbség az extends és az implements között. Mikor melyiket kell használni? Comperable-t megvalósító oasztályokban össze lehet hasonlitani

1.AA MEGOLDÓ BERCI AA 1.

I. 288.: Utcai WiFi térkép

Kezdő programozók hibái

Programozási technológia

Bánsághi Anna 2014 Bánsághi Anna 1 of 35

OOP és UML Áttekintés

Objektumorientált programozás C# nyelven

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Átírás:

Programozás I. Második ZH segédlet Ezen az oldalon: interfész létrehozás, megvalósítás; absztrakt osztály, metódus; belső osztály Interfész létrehozása: public interface InterfeszNeve { //Metódusok deklarációja (csak deklaráció!) Interfész megvalósítása: public class OszalyNeve implements InterfeszNeve { //Az interfészben deklarált metódusok megvalósítása Absztrakt osztály: (Nem példányosítható!) public abstract class OszalyNeve { //Adattagok //Metódusok deklarációja, megvalósítása //Az interfésszel ellentétben itt lehetnek megvalósított //metódusok is. Absztrakt metódus (Csak absztrakt osztályon belül) A gyerekosztályban meg kell valósítani! public abstract void csinaljvalamit(); Belső osztály (a belső osztály lehet privát, statikus is): public class KulsoOsztaly { //Adattagok private class BelsoOsztaly{ //Adattagok, metódusok private BelsoOsztaly b = new BelsoOsztaly(); //Metódusok

Ezen az oldalon: kivételtípusok, saját kivétel, kivételkezelés, kivétel dobásának jelzése, kivétel dobása; generikus listák létrehozása Kivételtípusok: NumberFormatException IOException ArrayIndexOutOfBoundException Exception Saját kivétel osztály Átalakításkor, például az Integer.parseInt() metódus dobhat ilyen kivételt. I/O műveletéknél dobódhat ilyen kivétel (pl.: fájlból olvasás) tömb alul-, vagy túlindexelésénél előforduló kivétel Általános kivétel Az Exception osztályből kell származtatni! Kivételkezelés try { //A védett blokk, ahol olyan művelet történik //ami kivételt dobhat (pl.: fájlból olvasás) catch(exceptiontype1 et1) { //Az ExceptionType1 típusú kivétel elkapása catch(exceptiontype2 et2){ //Az ExceptionType2 típusú kivétel elkapása catch(exceptiontype3 et3){ //Az ExceptionType3 típusú kivétel elkapása finally { //Mindenképpen lefutó kódrészlet Egy függvény dobhat kivételt: (fejlécében deklaráljuk) public void metodus() throws ExType1, ExType2 { //Kód Kivétel dobása: throw new ExceptionType(); Generikus listák: List<Tipus> intlist1 = new ArrayList<Tipus>(); List<Tipus> intlist2 = new LinkedList<Tipus>();

Ezen az oldalon: Generikus listák bejárása iterátorral, for-each ciklussal, for ciklussal, generikus halmaz létrehozása Lista bejárása iterátorral: Iterator<Tipus> bejarlista = lista.iterator(); while (bejarlista.hasnext()){ Tipus aktualis = bejarlista.next(); Lista bejárása for-each ciklussal: for(tipus valtozo : lista) { //Itt "valtozo" néven hivatkozhatunk az adott elemre Lista bejárása for ciklussal: for(int i=0; i < lista.size(); i++) { Tipus a = lista.get(i); Hozzáadás listához: lista.add(objektum); //A legelső üres indexre kerül be lista.add(index, objektum); //Adott indexre kerül be az //elem Egy adott elem eltávolítása a listából: lista.remove(index); //Adott indexű elemet törli lista.remove(objektum); //Az első megegyező objektumot //törli //Ha a listában több megegyező //objektum van, akkor is csak az elsőt // törli Egy kollekció eltávolítása a listából: (pl.: egy részlista) lista.removeall(masiklista); Egy elem benne van-e a listában: lista.contains(objektum) // true, ha igen Generikus halmaz: Set<Tipus> myset1 = new HashSet<Tipus>(); Set<Tipus> myset2 = new TreeSet<Tipus>();

Ezen az oldalon: hozzáadás halmazhoz, törlés halmazból; halmaz tartalmaz-e egy adott elemet; halmaz bejárása; generikus map, hozzáadás, elem benne van-e Hozzáadás a halmazhoz: halmaz.add(objektum); // Minden elem csak egyszer // szerepelhet benne Egy adott elem eltávolítása a halmazból: halmaz.remove(objektum); Egy kollekció eltávolítása a halmazból: (pl.: egy részhamaz) halmaz.removeall(masikhalmaz); Egy elem benne van-e a halmazban: halmaz.contains(objektum) // true, ha igen Halmaz bejárása iterátorral: Iterator<Tipus> bejarhalmaz = halmaz.iterator(); while (bejarhalmaz.hasnext()){ Tipus aktualis = bejarhalmaz.next(); Generikus map: (kulcs-érték párok halmaza) Map<Tipus1, Tipus2> map = new HashMap<Tipus1, Tipus2>(); Map<Tipus1, Tipus2> map2 = new TreeMap<Tipus1, Tipus2>(); Map-be kulcs-érték behelyezése: map.put(kulcs, érték); Generikus map iterátor Iterator<Map.Entry<KulcsTipus, ErtekTipus>> it = map.entryset().iterator(); Map adott kulcsához tartozó érték: ErtekTipkus v = map.get(kulcs); Egy adott kulcs benne van-e a mapben: map.containskey(kulcstipus) //Igaz, ha tartalmazza. Egy adott érték benne van-e a mapben: map.containsvalue(ertektipus) //Igaz, ha tartalmazza.

Ezen az oldalon: map bejárása iterátorral; beolvasás konzolról, fájlból; fájlbaírás; StringTokenizer Map bejárása iterátorral: for (Iterator<Map.Entry<String, Integer>> it = map.entryset().iterator(); it.hasnext(); ) { Map.Entry<String,Integer> e = it.next(); //Kulcs: String k = e.getkey(); //Érték : int v = e.getvalue(); Beolvasás konzolról: Scanner sc = new Scanner(System.in); int i = sc.nextint(); long l = sc.nextlong(); //egész szám beolvasása double d = sc.nextdouble(); //lebegőpontos beolvasása float f = sc.nextfloat(); //lebegőpontos beolvasása boolean b = sc.nextboolean(); //Boolean beolvasása String str = sc.next(); //String beolvasása String str = sc.nextline(); //Egész sor beolvasása Beolvasás fájlból (soronként): BufferedReader be = new BufferedReader(new FileReader(new File("fajlnev.txt"))); String line = null; while ((line = br.readline())!= null) { //A sorral végzendő művelet (pl.: darabolás) be.close(); Kiíratás fájlba: FileWriter ki = new FileWriter(new File("textfajl.txt")); ki.write("szöveg"); ki.close(); //A megnyitott fájl bezárása String feldarabolás (StringTokenizer): String s = "sor amit tordelni kell"; StringTokenizer st = new StringTokenizer(s); //Beépített //elválasztókarakterek StringTokenizer st2 = new StringTokenizer(s, ";"); //Saját //elválasztókarakterek

Ezen az oldalon: StringTokenizer feldarabolt szöveg bejárása, split, véletlen szám generálás Feldarabolt szöveg bejárása: while(st.hasmoretokens()) { String resz = st.nexttoken(); String feldarabolása a split() segítségével: String szoveg = "elso-masodik-harmadik"; String[] darabok = szoveg.split("-"); String elsoresz = darabok[0]; //elso String masodikresz = darabok[1]; //masodik String harmadikresz = darabok[2]; //harmadik Véletlenszám generálása: Random r = new Random(); int randomint = r.nextint(); int randomint2 = r.nextint(101); // 0-100 között generál // egy véletlenszámot double randomdouble = r.nextdouble(); A segédanyagot készítette: Antal Gábor. A segédanyagban előfordulhatnak esetlegesen hibák, elírások, ha valaki talál, akkor kérem jelezze felém az antal@inf.u-szeged.hu címen. Mindenkinek sok sikert kívánok a zh-hoz.