Programozás III. - NGB_IN001_3
Bevezetés az objektumorientált programozásba Varjasi Norbert Széchenyi István Egyetem Informatika Tanszék
Programozás III. - 1. el®adás
Félévi id®beosztás Bevezetés Összegzés
Tartalom
1
Félévi id®beosztás El®adások és gyakorlatok Zárthelyi dolgozatok
2
Bevezetés Az Objektumorientált programozásról Objektum orientált alapelvek
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
El®adások ZH
Outline
1
Félévi id®beosztás El®adások és gyakorlatok Zárthelyi dolgozatok
2
Bevezetés Az Objektumorientált programozásról Objektum orientált alapelvek
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
El®adások ZH
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!
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
El®adások ZH
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!
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
El®adások ZH
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!
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
El®adások ZH
Outline
1
Félévi id®beosztás El®adások és gyakorlatok Zárthelyi dolgozatok
2
Bevezetés Az Objektumorientált programozásról Objektum orientált alapelvek
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
El®adások ZH
Az aláírás megszerzésének feltétele
2db zárthelyi dolgozat teljesítése úgy, hogy a hallgató a két dolgozattal együttesen szerezhet® pontszámának legalább 50%-á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 alkalommal pótolhatók, több lehet®ség az aláírás megszerzésére nincs.
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
El®adások ZH
Zh írás
A zárthelyi dolgozatok írásának helye a D104-es, vagy hasonló gépterem.
Figure:
Id®pontok: 7. oktatási hét
(október
19. szerda, 15.30) 13.
oktatási hét
Pótlás a 14. héten! (Mindenki pótolhat, aki els® két alkalmon vagy nem szerzett elég pontot, vagy valamely ok miatt akadályoztatva volt.)
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Outline
1
Félévi id®beosztás El®adások és gyakorlatok Zárthelyi dolgozatok
2
Bevezetés Az Objektumorientált programozásról Objektum orientált alapelvek
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum 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++, Eiel, Ada, Delphi, Java, PHP, C#). Tisztán OO és hibrid nyelvek. 4GL (és 5GL).
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Objektumorientált programozás
Objektumok
Egységbezárás
Osztályok
Adatrejtés
A példányosítás
Örökl®dés
Jelölésrendszer
Többalakúság Adatabsztrakció Interfészek Osztályok együttm¶ködése
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum 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ónak kell lennie, Feladata: információtárolás, feladatok végrehajtása.
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum 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ípusdeníció
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum 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ése
4
kezd®értékadás (inicializálás)
5
Futás alatt: bels® állapot
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Osztály és objektum kapcsolata
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Osztály és objektum kapcsolata
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Jelölésrendszer
UML nyelvi elemek (Use-case -> állapot- és aktivitási diagramok) -> Osztálydiagramok Együttm¶ködési diagramok ...
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Outline
1
Félévi id®beosztás El®adások és gyakorlatok Zárthelyi dolgozatok
2
Bevezetés Az Objektumorientált programozásról Objektum orientált alapelvek
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Objektum orientált alapelvek Egységbezárás Adatrejtés Örökl˝odés Többalakúság
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Egységbezárás (encapsulation)
1. sz. OO alapfogalom adattagok, vagy tulajdonságok m¶veletek, vagy metódusok
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Adatrejtés (data hiding)
2. OO alapfogalom Minden objektum védi bels® adatait Gyakorlatilag 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 -
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Örökl®dés (inheritance)
3. OO alapfogalom Az osztályok hierarchiába szervezhet®k s és leszármazott osztályok A tulajdonságok és a m¶veletek örökl®dnek Futás alatti kötés fogalma (runtime binding, late binding)
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Örökl®dés (inheritance)
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum 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üldeniálás (override) felültöltés (overload)
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Többalakúság (polimorphism)
Osztályhierarchiában értelmezett. Virtuális metódusok, Futás alatti kötés - kés®i kötés (runtime binding, late binding) Vitrulális metódus tábla
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum 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.
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Adatabsztrakció (speciális ®sök, interfészek)
Absztrakt metódusok, absztrakt osztályok: kizárólag örökítési cé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 elv Programkód redundancia csökkentése Nincs 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¶ deniálása
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum 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
institution-log
NGB_IN001_3
Programozás 3. ea01
Félévi id®beosztás Bevezetés Összegzés
Az Objektumorientált programozásról Objektum orientált alapelvek
Osztályok együttm¶ködése
Tartalmazási kapcsolatok gyenge tartalmazás aggregáció er®s tartalmazás kompozíció
institution-log
NGB_IN001_3
Programozás 3. ea01
Irodalom
Összegzés
A fentiek az objektumorientált szemlélet és gondolkodásmód alapjai, 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.
institution-log
NGB_IN001_3
Programozás 3. ea01
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án Egyetem, 2006. 230 p. [elektronikus jegyzet ] (http://jegyzet.sze.hu/index.php?felt=Programoz%E1s+III&fajl=kere 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)
institution-log
NGB_IN001_3
Programozás 3. ea01