programozás iii. - ngb in001 3 - szt1.sze.huszt1.sze.hu/java/ea/prog3_ea_2011_01.pdf ·...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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