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ó

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?

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

OOP: Java 1.Gy: Java alapok

Segédanyag: Java alkalmazások gyakorlat

Programozási technológia

Programozás I. Első ZH segédlet

Java programozási nyelv

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

Programozási nyelvek II.: JAVA

Programozási nyelvek Java

Informatika terméktervezőknek

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

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

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

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

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

Programozási technológia

OOP: Java 8.Gy: Gyakorlás

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

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

Programozási nyelvek Java

4. Gy: JAVA osztályok

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

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

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

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.

Java gyakorlat feladatai e s megolda sai ( )

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

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

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

és az instanceof operátor

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

BME MOGI Gépészeti informatika 4.

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

Globális operátor overloading

Imperatív programozás

Algoritmusok és adatszerkezetek II.

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

A C# programozási nyelv alapjai

Osztályok. 4. gyakorlat

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

JAVA PROGRAMOZÁS 3.ELŐADÁS

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

OOP: Java 4.Gy: Java osztályok

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

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 )

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

Objektumorientált programozás C# nyelven III.

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

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

Java II. I A Java programozási nyelv alapelemei

Generikus Típusok, Kollekciók

Java IX. telkezelés a Java-ban

Objektumorientált programozás C# nyelven

503.AA Megoldo Arisztid 503.A

3. Osztályok II. Programozás II

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

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;

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

3. Gyakorlat Ismerkedés a Java nyelvvel

Reader /Writer InputStreamReader, OutputStreamWriter

OOP és UML Áttekintés

Objektumorientált programozás C# nyelven

Segédanyag: Java alkalmazások gyakorlat

Programozás II. labor

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

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

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

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

Java és web programozás

BME MOGI Gépészeti informatika 13.

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

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

Programozási nyelvek Java

Adatszerkezetek és algoritmusok

JavaServer Pages (JSP) (folytatás)

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

Web-technológia PHP-vel

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

1.AA MEGOLDÓ BERCI AA 1.

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

Bánsághi Anna

Kezdő programozók hibái

Objektumorientált programozás C# nyelven

Programozási technológia

Á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 finally { //Mindenképpen lefutó kódrészlet Kivételkezelés (több kivétel elkapása és kelezése azonos módon) try { // catch(exceptiontype1 ExceptionType2 et1) { //Az ExceptionType1 vagy ExceptionType2 típus elkapása 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; lambda függvénnyel, beolvasás konzolról, fájlból; fájlbaírás 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(); Map bejárása lambda függvénnyel: map.foreach( (kulcs, ertek) -> { // Művelet a kulccsal és/vagy az értékkel ) 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, KIVÉTELT DOBHAT!): 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 (KIVÉTELT DOBHAT!): FileWriter ki = new FileWriter(new File("textfajl.txt")); // VAGY BufferedWriter bw = new BufferedWriter( new FileWriter("textfajl.txt")); ki.write("szöveg"); // bw.write( Szöveg ); ki.close(); //A megnyitott fájl bezárása // bw.close();

Ezen az oldalon: StringTokenizer, StringTokenizer feldarabolt szöveg bejárása, split, véletlen szám generálás 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 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! Verzió: 2017.05.06 7:30