Professional Documents
Culture Documents
ngleton
InternalStruct
tcall()
In
nternalItera
ator
+ st: boo
ol
+ ct: int
ELTE-IK
ELTE
IK
Programozsi
g
technolgia
g 1.
2. gyakorlat:
Programozsi paradigmk, az
objektumorientlt
bj kt
i tlt programozs
Sin
ngleton
In
nternalItera
ator
tcall()
+ st: boo
ol
+ ct: int
InternalStruct
Programozsi paradigmk
A szoftverfejleszts sorn a legfbb cl, hogy a ksz
programrendszer megfeleljen a funkcionlis s minsgi
kvetelmnyeknek
Emellett,
Emellett a fejlesztk szmra fontos,
fontos hogy a ksz szoftver
fejlesztse a lehet legoptimlisabb legyen
a szoftverfejlesztsi modell meghatrozza a fejleszts
mdjt s menett
azt nem,
nem hogy milyen legyen a fejleszts stlusa,
stlusa milyen
absztrakcis szinten trtnjen a megvalsts, hiszen ezek
a tnyezk nem hatrozzk meg a szoftvert nmagt
nmagt, csak
a fejleszts folyamatt
A szoftverek tervezsnek s programozsnak mdszert
nevezzk programozsi paradigmnak
2. gyakorlat: Programozsi paradigmk, objektumorientci
2008.09.17.
Sin
ngleton
In
nternalItera
ator
tcall()
+ st: boo
ol
+ ct: int
InternalStruct
Programozsi paradigmk
A paradigma meghatrozza a programozs stlust s az
absztrakcis szintet
Vannak ltalnos cl, s szk krben alkalmazott
paradigmk minden adott feladatra megtallhat a legjobban
paradigmk,
alkalmazhat paradigma, vagy paradigmk
ltalban az elemzsi szakasz vgn clszer meghatrozni
az alkalmazni kvnt paradigmkat (egy projekten bell akr
programegysgenknt alkalmazhatunk ms paradigmt)
a paradigma meghatrozza az alkalmazhat programozsi
nyelvek krt is,
is s fordtva
egyes programozsi nyelvek tbb paradigmt is
tmogatnak gy a programozsi nyelv szempontjbl is
tmogatnak,
meghatrozhatjuk
2. gyakorlat: Programozsi paradigmk, objektumorientci
2008.09.17.
imperatv
funkcionlis
procedurlis
Sin
ngleton
In
nternalItera
ator
deklaratv(ler)
relcis(logikai)
InternalStruct
tcall()
+ st: boo
ol
+ ct: int
k l
korltozott
folyamalap
strukturlt
objektumorientlt
bj k
i l
2008.09.17.
Sin
ngleton
In
nternalItera
ator
tcall()
+ st: boo
ol
+ ct: int
InternalStruct
2008.09.17.
Sin
ngleton
In
nternalItera
ator
tcall()
+ st: boo
ol
+ ct: int
InternalStruct
2008.09.17.
Sin
ngleton
In
nternalItera
ator
tcall()
+ st: boo
ol
+ ct: int
InternalStruct
2008.09.17.
Sin
ngleton
In
nternalItera
ator
tcall()
+ st: boo
ol
+ ct: int
InternalStruct
2008.09.17.
Sin
ngleton
In
nternalItera
ator
tcall()
+ st: boo
ol
+ ct: int
InternalStruct
2008.09.17.
Sin
ngleton
InternalStruct
tcall()
In
nternalItera
ator
+ st: boo
ol
+ ct: int
10
2008.09.17.
Sin
ngleton
InternalStruct
tcall()
In
nternalItera
ator
+ st: boo
ol
+ ct: int
11
Programozsi paradigmk
Vannak gynevezett msodlagos programozsi paradigmk,
amelyek a programozst stlust nagyban befolysoljk
befolysoljk, pl.:
pl :
esemnyvezrelt: a programfuts mentett az
interfszeken keresztl rkez esemnyek vezrlik
folyamat alap: a programban egymssal prhuzamosan
fut folyamatok kommuniklnak
iteratv: a feladatot iteratvan oldja meg, rekurzv hvs
nlkl
rekurzv: a feladatot rekurzv hvsok sorozatval oldja
meg
sablon programozs: az adatszerkezetek sablonokon
keresztl llnak ssze
meta programozs: a folyamatot a program
metainformcis (programmanipulcis) szinten vezrli
2. gyakorlat: Programozsi paradigmk, objektumorientci
2008.09.17.
Sin
ngleton
InternalStruct
tcall()
In
nternalItera
ator
+ st: boo
ol
+ ct: int
12
Objektumorientci
Az objektumorientlt programozsban a feladatot nem
fellrl lefel,
lefel hanem alulrl felfel oldjuk meg,
meg azaz
azonostjuk azon alkotelemeket, amelyek a vgrehajtsban
rszt vesznek, s ezek kapcsolatnak, kommunikcijnak
mdjt trjuk fel
az alkotelemek kln nll egysgeket alkotnak,
alkotnak
amelyek adott feladatok elvgzsre alkalmasak, s bels
vltozkkal s mveletekkel rendelkeznek, amelyekkel
klnbz llapotokat vehetnek fel
a kommunikci zenetkldseken keresztl valsul meg
ltalban nagyobb feladatok megoldsra alkalmazhat,
amelyek procedurlis mdon tl komplikltnak
bizonyulnak
2. gyakorlat: Programozsi paradigmk, objektumorientci
2008.09.17.
Sin
ngleton
InternalStruct
tcall()
In
nternalItera
ator
+ st: boo
ol
+ ct: int
13
Objektumorientci
A val vilg modellezsbl indul ki
Elszr a 60
60-as
as vekben tnt fel a Simula programozsi
nyelvben az objektumorientlt tmogats, majd a 80-as
vekben megjelent az els teljesen objektumorientlt nyelv,
nyelv a
SmallTalk
Manapsg a legnpszerbb programozsi paradigma
paradigma, a
programozsi nyelvek jelents rsze tmogatja
Objektumorientlt
Obj kt
i tlt tmogatssal
t
t l rendelkez
d lk nyelvek:
l k C++,
C++
Object-C, Ada, Object Pascal (Delphi), Common LISP, F#,
Vis al Basic,
Visual
Basic PHP,
PHP ECMAScript,
ECMAScript Python,
P thon Perl,
Perl D,
D Vis
Visual
al
Prolog,
Objektumorientlt
Obj k
i l nyelvek:
l k Smalltalk,
S ll lk JAVA,
JAVA C#
C#, Eiff
Eiffel,
l
Ruby,
2. gyakorlat: Programozsi paradigmk, objektumorientci
2008.09.17.
Sin
ngleton
InternalStruct
tcall()
In
nternalItera
ator
+ st: boo
ol
+ ct: int
14
Objektumorientci alkotelemei
Osztly (Class):
az alkotelemek absztrakt jellemzit,
jellemzit karakterisztikjt,
karakterisztikjt
azaz tpust adja meg (tekinthet egy tervrajznak is,
amely alapjn a pldnyokat le lehet gyrtani)
megadja, milyen rszekbl, s rtkekbl llhat egy
alkotelem s milyen tevkenysgre kpes (milyen
alkotelem,
mveleteket tud futtatni)
tekinthet vltozk (konstansok) s eljrsok
(fggvnyek) gyjtemnynek
az osztly vltozit attribtumoknak,
attribtumoknak az eljrsokat
pedig metdusoknak nevezzk
az osztly biztostja a program modularitst
2008.09.17.
Sin
ngleton
InternalStruct
tcall()
In
nternalItera
ator
+ st: boo
ol
+ ct: int
15
Objektumorientci alkotelemei
az osztlynak kell biztostania egy kls felletet (export
interface) amely a klvilg (a tbbi objektum) szmra
interface),
lthat, s amelyen keresztl a kommunikci lezajlik, az
osztly tbbi rszt el kell rejteni a klvilgtl
pl. kutya, villamos, aut
Objektum (Object):
az osztly egy pldnya, amely konkrt rtkekkel br, s
meghatrozza az egyedet
tnylegesen ilyen jnnek ltre s mkdnek a program
futsa sorn
sorn, s mindegyikk nll llapotokkal
rendelkezik
egy objektumokhoz tetszleges szm tovbbi objektum
is kapcsoldhat
pl.
pl Lassie,
Lassie 2025-s
2025 s Combino,
Combino AII-911-es
AII 911 es rendszm aut
2. gyakorlat: Programozsi paradigmk, objektumorientci
2008.09.17.
Sin
ngleton
rklds:
az osztlyoknl megszabhatunk ltalnosabb
ltalnosabb, illetve
specilisabb osztlyokat, ahol a specilisabbak
rendelkeznek minden tulajdonsggal
tulajdonsggal, amivel az
ltalnosabb vltozat
pl.:
pl :
ltalnos
llnyy
tcall()
In
nternalItera
ator
+ st: boo
ol
+ ct: int
Objektumorientci alkotelemei
ggerinces
kutya
y
sktjuhsz
j
InternalStruct
specilis
llegzik
vangerincoszlopa
ugat
hossz szr
hosszszr
16
2008.09.17.
Sin
ngleton
InternalStruct
tcall()
In
nternalItera
ator
+ st: boo
ol
+ ct: int
17
Objektumorientci alkotelemei
ezt a folyamatot, amikor a specilisabb tveszi az
ltalnos jellemzit s mkdst,
mkdst rkldsnek
nevezzk
az rklds kt irnyt specializcinak
specializcinak, illetve
ltalnostsnak nevezzk, az ltalnosabb objektumot
snek, a specilisabbat leszrmazottnak nevezzk (ha
csak egy szint a klnbsg, akkor szlnek, illetve
gy
gyereknek)
)
ltalban egy szlnek tbb gyereke is van, m csak
egyes esetekben
ese e be engedlyezett,
e ged ye e , hogy
ogy egy gyereknek
gye e e tbb
bb
szlje is legyen (ezt tbbszrs rkldsnek nevezzk)
tbbszrs rklds sorn a gyerek megkaphatja
minden szlje minden tulajdonsgt, illetve
szablyozhatjuk,
y
j , hogy
gy melyik
y stl melyeket
y
kapja
pj
2. gyakorlat: Programozsi paradigmk, objektumorientci
2008.09.17.
Sin
ngleton
InternalStruct
tcall()
In
nternalItera
ator
+ st: boo
ol
+ ct: int
18
Objektumorientci alkotelemei
Absztrakci:
az objektumok tetszleges reprezentlsa lehetv teszi,
teszi
hogy az adott problmt tbb szinten kezeljk, azaz az
sszes lehetsges tulajdonsgnak egy tetszleges
halmazt vlasszuk ki, s azokat hasznljuk az
brzolsban
a reprezentcis szint megvlasztsa jelenti az
absztrakci szintet
a szmunkra lnyeges tulajdonsgokat megtartjuk, a
lnyegteleneket elhagyjuk
pl.: az autt brzolhatjuk rendszmmal, sebessggel s
tmeggel vagy brzolhatjuk,
tmeggel,
brzolhatjuk mint motor s karosszria
sszessge, vagy akr minden egyes alkatrszt klnkln vehetnk
2. gyakorlat: Programozsi paradigmk, objektumorientci
2008.09.17.
Sin
ngleton
InternalStruct
tcall()
In
nternalItera
ator
+ st: boo
ol
+ ct: int
19
Objektumorientci alkotelemei
Polimorfizmus:
ha egy objektum olyan osztlynak pldnya,
pldnya amelynek
tbb se is van, akkor az az objektum tekinthet brmely
snek pldnyaknt is
ezltal lehetv vlik, hogy egy objektumnak tbb
osztlya is legyen,
legyen s aktulisan azt az osztlyt
hasznljuk, amely az aktulis krnyezetbe beleillik
pl.:
pl : ha egy raktrben vegyesen akarunk autkat s
motorokat elhelyezni, akkor azt mondjuk, hogy
egysgesek szemlygpjrmveket helyeznk el
(amelynek mindkett specilis esete)
pl.:
pl : ha egy koordinta rendszerben krket s ngyzeteket
is akarunk rajzolni, akkor egysgesen geometriai
alakzatokat rajzolunk
2. gyakorlat: Programozsi paradigmk, objektumorientci
2008.09.17.