programozás iii. - ngb in001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf ·...

32

Upload: buitu

Post on 06-Feb-2018

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

Programozás III. - NGB_IN001_3Bevezetés az objektumorientált programozásba

Varjasi Norbert

Széchenyi István Egyetem

Informatika Tanszék

Programozás III. - 1. el®adás

Page 2: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Tartalom

1 Félévi id®beosztásEl®adások és gyakorlatokZárthelyi dolgozatok

2 BevezetésAz Objektumorientált programozásrólObjektum orientált alapelvek

NGB_IN001_3 Programozás 3. ea01

Page 3: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

El®adásokZH

Outline

1 Félévi id®beosztásEl®adások és gyakorlatokZárthelyi dolgozatok

2 BevezetésAz Objektumorientált programozásrólObjektum orientált alapelvek

NGB_IN001_3 Programozás 3. ea01

Page 4: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

El®adásokZH

El®adások

13+1 oktatási hét

heti 5 kontaktóra: 2 ea +3 gyakorlat + X egyéni felkészülés

6 kreditpont!

NGB_IN001_3 Programozás 3. ea01

Page 5: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

El®adásokZH

El®adások

13+1 oktatási hét

heti 5 kontaktóra: 2 ea +3 gyakorlat + X egyéni felkészülés

6 kreditpont!

NGB_IN001_3 Programozás 3. ea01

Page 6: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

El®adásokZH

El®adások

13+1 oktatási hét

heti 5 kontaktóra: 2 ea +3 gyakorlat + X egyéni felkészülés

6 kreditpont!

NGB_IN001_3 Programozás 3. ea01

Page 7: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

El®adásokZH

Outline

1 Félévi id®beosztásEl®adások és gyakorlatokZárthelyi dolgozatok

2 BevezetésAz Objektumorientált programozásrólObjektum orientált alapelvek

NGB_IN001_3 Programozás 3. ea01

Page 8: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

El®adásokZH

Az aláírás megszerzésének feltétele

2db zárthelyi dolgozat teljesítése úgy, hogy a hallgató a kétdolgozattal együttesen szerezhet® pontszámának legalább50%-át eléri.

A zárthelyi dolgozatok két részb®l állnak:

elméleti tesztkérdéssor,gyakorlati feladat megoldása.

A zárthelyi dolgozatok a szorgalmi id®szakban egy alkalommalpótolhatók, több lehet®ség az aláírás megszerzésére nincs.

NGB_IN001_3 Programozás 3. ea01

Page 9: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

El®adásokZH

Zh írás

A zárthelyi dolgozatok írásánakhelye a D104-es, vagy hasonlógépterem.

Id®pontok:

7. oktatási hét (október19. szerda, 15.30)13. oktatási hét

Pótlás a 14. héten! (Mindenkipótolhat, aki els® két alkalmonvagy nem szerzett elég pontot,vagy valamely ok miattakadályoztatva volt.)

Figure:

Kérdések?NGB_IN001_3 Programozás 3. ea01

Page 10: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Outline

1 Félévi id®beosztásEl®adások és gyakorlatokZárthelyi dolgozatok

2 BevezetésAz Objektumorientált programozásrólObjektum orientált alapelvek

NGB_IN001_3 Programozás 3. ea01

Page 11: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Az OO technológia történeti vonatkozásai

'60-as évek: Smalltallk, Simula.

'80-as � 90-es évek:

OO technológia elterjedése (object pascal, C++, Ei�el, Ada,Delphi, Java, PHP, C#).

Tisztán OO és hibrid nyelvek. 4GL (és 5GL).

NGB_IN001_3 Programozás 3. ea01

Page 12: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Objektumorientált programozás

Objektumok

Osztályok

A példányosítás

Jelölésrendszer

Egységbezárás

Adatrejtés

Örökl®dés

Többalakúság

Adatabsztrakció

Interfészek

Osztályok együttm¶ködése

NGB_IN001_3 Programozás 3. ea01

Page 13: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Az objektum

Alapötlet: a valós világ modellezése.

Egy-egy önálló el®fordulás, ezért egyedileg azonosíthatónakkell lennie,

Feladata:

információtárolás,feladatok végrehajtása.

NGB_IN001_3 Programozás 3. ea01

Page 14: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Az osztály

A közös jellemz®kkel bíró objektumok összessége,

Magasabb szint¶ fogalomalkotás,

Absztrakt fogalmakkal jellemezhet®,

Programozási szempontból: típusde�níció

NGB_IN001_3 Programozás 3. ea01

Page 15: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

A példányosítás

1 A programozás során az osztályokból egyedeket(objektumokat)példányosítunk.

2 tárhelyfoglalás azonosító (referencia típus)3 objektum osztályhoz rendelése4 kezd®értékadás (inicializálás)5 Futás alatt: bels® állapot

NGB_IN001_3 Programozás 3. ea01

Page 16: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Osztály és objektum kapcsolata

NGB_IN001_3 Programozás 3. ea01

Page 17: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Osztály és objektum kapcsolata

NGB_IN001_3 Programozás 3. ea01

Page 18: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Jelölésrendszer

UML nyelvi elemek

(Use-case -> állapot- és aktivitási diagramok) ->OsztálydiagramokEgyüttm¶ködési diagramok...

NGB_IN001_3 Programozás 3. ea01

Page 19: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Outline

1 Félévi id®beosztásEl®adások és gyakorlatokZárthelyi dolgozatok

2 BevezetésAz Objektumorientált programozásrólObjektum orientált alapelvek

NGB_IN001_3 Programozás 3. ea01

Page 20: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Objektum orientált alapelvek

Egységbezárás

Adatrejtés

Öröklodés

Többalakúság

NGB_IN001_3 Programozás 3. ea01

Page 21: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Egységbezárás (encapsulation)

1. sz. OO alapfogalom

adattagok, vagy tulajdonságokm¶veletek, vagy metódusok

NGB_IN001_3 Programozás 3. ea01

Page 22: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Adatrejtés (data hiding)

2. OO alapfogalom

Minden objektum védi bels® adataitGyakorlatilag az adatokat kívülr®l csak ellen®rzötten,metódusokon keresztül éjük el.Hozzáférési kategóriák:

publikus �+�,védett �#�,csoamag szint¶ (java),privát �-�

NGB_IN001_3 Programozás 3. ea01

Page 23: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Örökl®dés (inheritance)

3. OO alapfogalom

Az osztályok hierarchiába szervezhet®k�s és leszármazott osztályokA tulajdonságok és a m¶veletek örökl®dnekFutás alatti kötés fogalma (runtime binding, late binding)

NGB_IN001_3 Programozás 3. ea01

Page 24: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Örökl®dés (inheritance)

NGB_IN001_3 Programozás 3. ea01

Page 25: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Többalakúság (polimorphism)

4. OO alapfogalom (összetett jelentés):

Változók többalakúsága:

példányok kompatibilitása örökléskor az ®s felé

Metódusok többalakúsága:

felülde�niálás (override)felültöltés (overload)

NGB_IN001_3 Programozás 3. ea01

Page 26: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Többalakúság (polimorphism)

Osztályhierarchiábanértelmezett.Virtuálismetódusok,Futás alatti kötés- kés®i kötés(runtime binding,late binding)Vitrulális metódustábla

NGB_IN001_3 Programozás 3. ea01

Page 27: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Többalakúság (polimorphism)

Egy osztályon belül értelmezett.Azonos üzenetre másképpen reagálás.Szignatúra fogalma.

NGB_IN001_3 Programozás 3. ea01

Page 28: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Adatabsztrakció (speciális ®sök, interfészek)

Absztrakt metódusok, absztrakt osztályok: kizárólag örökítésicéllal szerepelnek

Virtuális metódusok

Futás alatti kötés (lásd: többalakúság)Azonos üzenetküldés az objektumoknak�Keresd az ®st� elvProgramkód redundancia csökkentéseNincs közvetlenül példányosítás

Az absztrakció magasabb szint¶ megvalósítása: interfész

Az osztályok közötti kapcsolatok szélesebb kör¶ értelmezése

Üzenetküldési szabályok magas szint¶ de�niálása

NGB_IN001_3 Programozás 3. ea01

Page 29: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Osztályok együttm¶ködése

Ismertségi és tartalmazási kapcsolatok osztályok között

Referencián keresztül

Egymástól független objektumok

NGB_IN001_3 Programozás 3. ea01

Page 30: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Félévi id®beosztásBevezetésÖsszegzés

Az Objektumorientált programozásrólObjektum orientált alapelvek

Osztályok együttm¶ködése

Tartalmazási kapcsolatok

gyenge tartalmazás � aggregáció

er®s tartalmazás � kompozíció

NGB_IN001_3 Programozás 3. ea01

Page 31: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Irodalom

Összegzés

A fentiek az objektumorientált szemlélet és gondolkodásmódalapjai, nagy vonalakban.

Épít®kövek (elmélet) nélkül a gyakorlat (programfejlesztés)nem fog menni.

További részletek: elektronikus jegyzet 1. és 2. fejezete.

Köv. alkalommal:

A java programnyelv alapjai.Ismerkedés a környezettel.

NGB_IN001_3 Programozás 3. ea01

Page 32: Programozás III. - NGB IN001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf · institution-logo Irodalom Kötelez® és ajánlott irodalomI Sziray József: Bevezetés a

institution-logo

Irodalom

Kötelez® és ajánlott irodalom I

Sziray József: Bevezetés a Java programozási nyelvbe :LOGSOFT, Budapest, 2009.

Varjasi Norbert: Programozás III. Gy®r : Széchenyi IstvánEgyetem, 2006. 230 p. [elektronikus jegyzet ](http://jegyzet.sze.hu/index.php?felt=Programoz%E1s+III&fajl=keres)

Angster Erzsébet: Objektumorientált tervezés és programozás(Java) 4KÖR Bt., Budapest, 2002

Programozási nyelvek : Nyékyné Gaizler Judit(szerk.) et al.Budapest : KiskapuKft, 2003. 760p. ISBN: 963 9301 477

Vég Csaba - dr. Juhász István: Java-start! Logos 2000 Bt.,Debrecen, 1999 (ISBN: 963 03 9005 1)

NGB_IN001_3 Programozás 3. ea01