Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Programozás III KOLLEKCIÓK 2..

Hasonló előadás


Az előadások a következő témára: "Programozás III KOLLEKCIÓK 2.."— Előadás másolata:

1 Programozás III KOLLEKCIÓK 2.

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.

3 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:

4 FELADATMEGOLDÁS (ismétlés)

5 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.

6 FELADATMEGOLDÁS (ismétlés)

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

8 FELADATMEGOLDÁS (ismétlés)

9 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.

10 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.

11 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

12 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

13 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?)

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

15 „VÁLASZTHATÓ” RENDEZÉS

16 „VÁLASZTHATÓ” RENDEZÉS

17 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

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

19 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>

20 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.

21 PÉLDA SAJÁT GENERIKUS OSZTÁLYRA

22 PÉLDA SAJÁT GENERIKUS OSZTÁLYRA

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

24 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.

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

26 MÉG KÉT FOGALOM – 1. – idő teszt

27 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.

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

29 MÉG KÉT FOGALOM – 2.

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

31 MÉG KÉT FOGALOM – 2.

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

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

34 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ó.

35 Ú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.

36


Letölteni ppt "Programozás III KOLLEKCIÓK 2.."

Hasonló előadás


Google Hirdetések