Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 15

Objektno orijentisano

programiranje
Osnovni principi objektno
orijentisanog programiranje
reavanje problema je pravljenje modela,
modeliranje je usposatvljanje analogije izmeu
originala i modela

objekat unutranje stanje (osobine) i akcije

u OOP podaci (opisuju osobine, unutranje stanje) i


metode (opisuju postupke) objedinjeni su jednu
celinu i ine aktivan objekat

prirodan nain opisa realnog sveta


Osnovni principi

apstrakcija

enkapsulacija

nasleivanje, polimorfizam

generalizacija, specijalizacija
apstrakcija - kontrolisano ukljuivanje i
iskljuivanje nekih detalja o objektu prilikom
kreiranja modela na osnovu realnih objekata
u OOP pri modeliranju polazimo od realnog
sveta
svaki objekat iz realnog sveta pored statikih
osobina ima i dinamike
akcije koje objekat moe da uradi sastavni su
deo samog objekta
svaki objekat ima svoje unutranje stanje i
skup akcija koje moe da uradi
Objekat i klasa
Objekat karakteriu podaci i ponaanje
Podaci predstavljaju stanje objekta- atributi
Ponaanje objekta je ono to objekat moe da uradi
metode
Program moemo posmatrati kao skup
objekata, koji meusobno komuniciraju
Objekti komuniciraju slanjem poruka tj.
pozivom metoda
Metode objekta predstavlju njegov interfejs
Klasa je apstrakcija (uoptavanje) konkretnih
objekata
Klasa je ablon od kojeg se prave objekti
Klasom definiemo atribute i metode koje poseduju
svi objekti napravljeni pomou te klase
Objekat je primerak, instanca klase
Svaki objekat ima sopstvenu kopiju atributa (po
kojoj se meusobno razlikuju objekti iste klase) i
kopiju metoda.
Ne pravi se fizika kopija metoda za svaki objekat, ve svaki
objekat pokazuje na isti fiziki kod metode. To je pitanje
realizacije, sa konceptualnog gledita moemo zamisliti da
svaki objekat ima sopstvenu kopiju atributa i metoda.
klasa Ucenik

-JMBG
-Ime atributi
-Prezime
-Adresa
-Razred
-Odeljenje

+ uzmiJMBG
+uzmiImePrezime metode
+uzmiAdresu
+promeniAdresu
...
Objekti klase Ucenik
objekat 1 objekat2

2204988.... 1005988....
Pera Milica
Petrovic Kovacevic
Knez Mihailova 34 Kraljice Natalije 39
3 2
1 3
+ uzmiJMBG + uzmiJMBG
+uzmiImePrezime +uzmiImePrezime
+uzmiAdresu +uzmiAdresu
+promeniAdresu +promeniAdresu
... ...
enkapsulacija
Objekat ne otkriva sve svoje atribute i
ponaanja
Detalje koji nisu vani za korienje objekta
treba saktiti od ostalih objekata
Enkapsulacija predstavlja zatitu objekta od
izmena koje nisu predviene interfejsom
Enkapsulacija se ostvaruje razliitim nivoima
pristupa atributima i metodama objekta
(privatni (private), javni (public) lanovi klase)
Nasleivanje
Uoavanjem zajednikih osobina niza klasa
(Ucenik, Profesor, Roditelj ) moemo dobiti novu
klasu na viem nivou apstrakcije (Osoba).
Ovakva operacija naziva se generalizacija, a
obrnuta operacija je specijalizacija.
Generalizacija i specijalizacija su osnovne
operacije koje se koriste pri modeliranju.
Klase dobijene specijalizacijom nasleuju sve
atribute i metode polazne klase.
Nasleivanje dozvoljava klasi da nasledi atribute i
metode neke druge klase, tako pravimo novu
klasu apstrahujui zajednike atribute i metode.
Nasleivanjem je obezbeeno viestruku
upotrebu programskog koda i olakava
celokupno projektovanje.

Osnovna (roditeljska) klasa, natklasa, sadri


sve atribute i metode koje su zajednike za
sve klase koje je nasleuju izvedene
(podreene) klase.

Osoba (ime, prezime, pol, JMBG, adresa)


Ucenik (kola, razred, odeljenje)
Profesor (kola, spisak razreda kojim predaje....)
Roditelj ( struna sprema, zaposlenje...)
Klasa Osoba
Osnovan klasa - JMBG
- I me
- Prezime
- Adresa

+ uzmiJMBG
+ uzmiImePrezime
+ uzmiAdresu
+ promeniAdresu

Izvedene klase
Klasa Ucenik Klasa Profesor Klasa Roditelj
- skola - skola - zanimanje
- razred - spisak predmeta - telefon na poslu
- odeljenje - strucna sprema

+ slusaPredmet + ocenjujeUcenika + pravdaCasUceniku


+ odgovaraPredmet + ispitujeUcenika ...
... ...

generalizacija
specijalizacija
Ptice
Ptice letaci
Vrabac
Golub
....
Ptice neletai
Pingvin
Noj
....
Osnovna (nadreena, roditeljska) klasa nadklasa -
sadri sve atribute i metode koje su zajednike za sve
klase koje je nasleuju.
Izvedena (podreena) klasa podklasa - nasleuje sve
atribute i metode nadklase, a moe da sadri i svoje
sopstvene dodatne atribute i metode, kako i da
predefinie neke metode iz nadklase.
Figura
Pravougaonik
Kvadrat
Trougao
Krug

Poliformizam mnotvo oblika


Slini objekti mogu razliito odgovarati na istu poruku.
U hijerarhiji klasa sve podreene klase nasleuju interfejs od svojih
nadreenih klasa, ali svaka od njih moe realizovati metod iz
nadklase na sebi svojstven nain.
Realizacija metoda u izvedenoj klasi nadjaava (overriding )
realizaciju iste metode u roditeljskoj (osnovnoj) klasi, tj.
zamenjuje se roditeljska realizacija metode realizacijom potomka.
esto ta metoda ne moe biti realizovana u roditeljskoj klasi
(npr. metod crtaj, povrina, obim).
U prethodnom primeru u klasi Figura ne moemo
definisati metod Povrsina, Obim, Crtaj, takva klasa naziva
se apstraktna klasa. Realizacija tih metoda mogua je u
izvedenim klasama.
Tako moemo imati skup razliitih figura, i svakoj figuri
aljemo istu poruku Crtaj, svaka figura e odgovoriti na
svojstven nain.

You might also like