Programozás III KOLLEKCIÓK 2..

Slides:



Advertisements
Hasonló előadás
Programozás III STRING-XML.
Advertisements

C++ programozási nyelv Gyakorlat hét
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Adatbányászati technikák (VISZM185)
Öröklődés 2..
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
Vizuális modellezés Uml és osztálydiagram UML eszközök
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Tömbök ismétlés Osztályok Java-ban Garbage collection
A C++ programozási nyelvSoós Sándor 1/14 C++ programozási nyelv Gyakorlat hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
Java programozási nyelv 3. rész – Osztályok I.
A C++ programozási nyelvSoós Sándor 1/12 C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
C# tagfüggvények.
C# tagfüggvények.
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
6. előadás Hatókör, láthatóság, élettartam. Változók leképzése a memóriára. Blokkszerkezetes nyelvek. Kivételkezelés.
Annotációk a Java 5 nyelvben Kozsik Tamás. Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz,
© Kozsik Tamás Csomagok. © Kozsik Tamás A program tagolása Típusdefiníciók (osztályok, interfészek) Metódusok Blokk utasítások Csomagok.
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék
Programozás C# -ban Tömbök.
Objektumorientált tervezés és programozás II. 3. előadás
VI. Konténerek 18. Tömbök 19. Rendezés, keresés, karbantartás
VI. Konténerek 18. Tömbök 19. Rendezés, keresés, karbantartás
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
UML Diagramok ábrázolása
V. Adatszerkezetek, kollekciók
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Scala KOVÁCS VINCENT. Gyűjtemények – Collections  Scala több féle gyűjteménnyel rendelkezik:  Listák (Lists)  Halmazok (Sets)  Maps  Tuple  A gyűjtemények.
V 1.0 Szabó Zsolt, Óbudai Egyetem, Programozási Paradigmák és Technikák Programozási eszközök Interfészek Generikus.
V 1.0 Szabó Zsolt, Óbudai Egyetem, Programozási Paradigmák és Technikák Programozási eszközök Interfészek Generikus.
Visual Basic 2008 Express Edition
Java programozási nyelv Metódusok
Java programozási nyelv Adatbekérés konzolról
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Programozás III KOLLEKCIÓK.
Programozás III KOLLEKCIÓK.
Programozás III UNIT TEST. És tényleg: Honnan lehet tudni, hogy működik-e vagy sem?
1 Objektum orientált programozás Öröklődés: többszörös öröklődés, konstruktorok, destruktorok, overloading Nagy Szilvia.
Objektumvezérelt rendszerek tervezése 7. óra – Iterator, State, Interpreter © Szőke Gábor.
2. Gyakorlat Zalatnai Csongor
Programozás III KIVÉTEL – CSOMAG. CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban.
Programozás III KOLLEKCIÓK.
Programozás III KIVÉTEL.
Objektumorientált alapjai ISZAM III.évf. részére Bunkóczi László.
Programozás III CSOMAG. CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van.
Programozás III KIVÉTEL. KIVÉTELKEZELÉS Hibátlan program nincs!!! eddig hiba esetén leállt a program. Példa ilyen hibákra: ─ ArrayBoundsOfException (tömb.
1 Objektum orientált programozás Az objektumok és az osztályok – példányosodás Nagy Szilvia.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
Programozás III ÖTLETEK A FELADATMEGOLDÁSHOZ. A HF-EK APROPÓJÁN Néhány javaslat: 1. Jó lenne, ha a feladatmegoldás előtt átnéznék az előadás-anyagokat.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Programozás III JPA.
Programozás II. labor 2. rész (Adatszerkezetek)
Krizsán Zoltán, iit C# osztályok 2 Adattagok  Osztály hatáskörben definiált változó.  Formája: [attribútum] [módosító] típus azonosító [=kezdő érték][,
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Dependency Injection Tesztduplikátumok, Mock-ok, Fake-ek Feladat
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Java alkalmazások 4. Előadás.
Függvénysablonok használata
Előadás másolata:

Programozás III KOLLEKCIÓK 2.

KONTÉNEREK – GYŰJTEMÉNYEK (ismétlés) A konténer olyan objektum, amely objektumokat tárol, és alkalmas különböző karbantartási, keresési és bejárási funkciók megvalósítására. Csomagja: java.util A konténerek általánosak, azokba bármilyen objektumot betehetünk. (De csak objektumot!) A gyűjtemények „változtatható méretű tömbök”, rendelkeznek karbantartási és keresési funkciókkal.

FELADATMEGOLDÁS (ismétlés) Gondoljuk végig egy klinika latogato() metódusát: A betegek listája tartalmazza a regisztrált betegek adatait, keresünk egy konkrét beteget. A programrészlet:

FELADATMEGOLDÁS (ismétlés)

FELADATMEGOLDÁS (ismétlés) Biztos, hogy megtalálja? Csak akkor, ha a Paciens osztályban van equals() és hashcode() metódus. És ezek a metódusok honnan tudják, hogy orvos vagy barát keresi az illetőt? Egyelőre sehonnan, fel kell rá készíteni őket.

FELADATMEGOLDÁS (ismétlés)

FELADATMEGOLDÁS (ismétlés) Mikor nem kell a kikommentezett rész?

FELADATMEGOLDÁS (ismétlés)

FELADATMEGOLDÁS (ismétlés) Mi történik, ha a Paciens osztálynak van egy utód osztálya, és az utódok „ugyanolyanságára” még egy további saját jogú feltétel is van? A név-re, tajszámra vonatkozó feltétel öröklődik a Paciens osztályból, a saját feltételre vonatkozó megkötést viszont az utód osztályban kell generálni.

RENDEZÉS (ismétlés) A Collections osztály algoritmusai úgy működnek, hogy páronként összehasonlítják a gyűjtemény elemeit. Ezért ezek a metódusok megkövetelik, hogy a konténerbe betett objektumok összehasonlíthatóak legyenek, vagyis hogy a/ maguk implementálják a Comparable interfészt, vagy b/ létezzen hozzájuk a Compator interfészt implementáló hasonlító osztály.

RENDEZÉS (ismétlés) Mikor használható a Collections.sort(adatok) hívás? adatok: List<Adat> adatok; Adat: class Adat implements Comparable Adat-ban: compareTo() metódus

RENDEZÉS (ismétlés) Mikor használható a Collections.sort(adatok, new Hasonlitas()) hívás? adatok: List<Adat> adatok; Adat: class Adat Hasonlitas: class Hasonlitas implements Comparator Hasonlitas-ban: compare() metódus

RENDEZÉS (ismétlés) Rendezések: Mindegy, hogy melyik fajtát használják, de egy projekten belül lehetőleg csak egyfajta legyen. (Az AlapOsztaly implements Comparable megoldás esetén is lehet többféle szempontú rendezés – hogyan?)

„VÁLASZTHATÓ” RENDEZÉS ? Hogyan oldható meg, hogy választható szempont szerint rendezzünk?

„VÁLASZTHATÓ” RENDEZÉS

„VÁLASZTHATÓ” RENDEZÉS

RENDEZÉS AZ EDDIGIEKTŐL CSÖPPET ELTÉRŐ MÓDON Példa elsődleges – másodlagos rendezésre Ld. witch/… eloadas/peldak/Rendezos szerző: Pintér Tamás

MÚLT ÓRAI „MARADVÁNY” Mi ez?

JAVA – GENERIKUSOK A generikus lehetőséget ad osztályok más típussal való paraméterezésére. Pl.: A generikusan (általánosan) definiált List aktuális típus-paramétere az lehet, hogy a lista milyen konkrét típusú adatokat tartalmazzon – pl. List<Paros>

JAVA – GENERIKUS PÉLDA De sok más helyen is használhatjuk a generikust. Pl. készíthetünk olyan saját generikus (általános) számológép típust, amely ugyanúgy teszi a dolgát: összead, szoroz, de egyszer egészekkel, máskor törtekkel, attól függően, hogy az Integer vagy a Double típussal paraméterezve konkretizáltuk-e.

PÉLDA SAJÁT GENERIKUS OSZTÁLYRA

PÉLDA SAJÁT GENERIKUS OSZTÁLYRA

MÁSIK PÉLDA SAJÁT GENERIKUS OSZTÁLYRA

MÉG KÉT FOGALOM – 1. Iterátor: Egy iterátor segítségével végigmehetünk egy kollekción, sőt, elemet is törölhetünk belőle.

MÉG KÉT FOGALOM – 1. Iterátor példa

MÉG KÉT FOGALOM – 1. – idő teszt http://www.mkyong.com/java/while-loop-for-loop-and-iterator-performance-test-java/

MÉG KÉT FOGALOM – 2. Enumerátor: Az enum fix konstans értékek létrehozására használható. Mivel típusos, így biztonságosabb mint egy int konstans. Pl: public static final int HETFO = 1 – nem tudjuk, hogy az 1-es mit takar, és kezelni kell az érvénytelen értéket public enum Nap { HETFO, KEDD,… – típusos, így nem kell foglalkozni az érvénytelen értékekkel Lehet konstruktora, és használhatunk benne final és nem final mezőket.

NÉHÁNY OSZTÁLY Enumerátor példa 1.

MÉG KÉT FOGALOM – 2.

MÉG KÉT FOGALOM – 2. Enumerátor példa 2.

MÉG KÉT FOGALOM – 2.

ADÓSSÁG: PROBLÉMAFELVETÉS Kívülről módosítható 

ADÓSSÁG: MEGOLDÁSOK Egy lehetséges megoldás: Másik lehetőség: Mi a különbség?

ADÓSSÁG: MEGOLDÁSOK Első változat: A lista = getTantargyak() lista módosítható, de a getTantargyak() hívás eredménye mindig az eredeti lista. Második változat: A lista = getTantargyak() lista egyáltalán nem módosítható.

ÚJABB PROBLÉMAFELVETÉS Hogyan lehet megoldani azt, hogy minden példánynak egyedi sorszáma legyen? Még várom az önálló kísérletezést.