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

Hasonló előadás


Az előadások a következő témára: "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,"— 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 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 Mikor nem kell a kikommentezett rész?

8 FELADATMEGOLDÁS (ismétlés)

9 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. FELADATMEGOLDÁS (ismétlés)

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 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 adatok; Adat:class Adat Hasonlitas:class Hasonlitas implements Comparator Hasonlitas-ban: compare() metódus

13 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?) RENDEZÉS (ismétlés)

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

15 „VÁLASZTHATÓ” RENDEZÉS

16

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 Mi ez? MÚLT ÓRAI „MARADVÁNY”

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

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

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

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

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

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

27 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. MÉG KÉT FOGALOM – 2.

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

29 MÉG KÉT FOGALOM – 2.

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

31

32 ADÓSSÁG: PROBLÉMAFELVETÉS Probléma: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 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ó. ADÓSSÁG: MEGOLDÁSOK

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.. 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,"

Hasonló előadás


Google Hirdetések