You are on page 1of 4

Uvod u objektno orijentisano programiranje

Laslo Kraus

Strukturirano programiranje
Laslo Kraus • Klasična metodologija zasnovana na funkcionalnoj
dekompoziciji složenih sistema
- uočavaju se funkcionalne celine koje se dalje razlažu na manje
celine
Uvod u objektno - prilikom menjanja mogućnosti sistema, vrlo često treba
preraditi veliki deo već gotovih programa
orijentisano
programiranje

Laslo Kraus 2 Uvod u objektno orijentisano programiranje

Objektno orijentisano programiranje Objekti


• Savremena metodologija zasnovana na podacima koji se • Jedinke realnog sveta čiji se model pravi
obrađuju
- uočavaju se objekti (podaci) i razvrstavaju se u klase na
osnovu zajedničkih osobina
- svaka klasa se nezavisno ostvaruje
- obrada se sastoji od interakcija objekata
- uvođenje novih klasa ne zahteva izmene u gotovim klasama
- menjanje gotovih klasa ne zahteva izmene ostalih klasa • Imaju određena stanja koja vremenom mogu da se menjaju
• Imaju određena ponašanja kojima reaguju na poruke
(uticaje) okoline
- mogu da promene svoje stanje
- mogu da daju neke informacije o svom stanju
- mogu da stvaraju ili uništavaju druge objekte
- mogu da šalju poruke drugim objektima
Laslo Kraus 3 Uvod u objektno orijentisano programiranje Laslo Kraus 4 Uvod u objektno orijentisano programiranje

Klase Članovi klasa


• Grupe objekata sa zajedničkim osobinama • Označavaju se imenima
• Atributi
- elementarnih tipova (celi brojevi, realni brojevi, …)
- složenih tipova (klase, nizovi)
- sadržani su u objektima i utiču na veličinu objekata
• Metode
- stanja objekata se predstavljaju pomoću atributa - mogu da imaju argumente proizvoljnih tipova
- ponašanje objekata se ostvaruju pomoću metoda - daju rezultat nekog tipa (tip metode)
- atributi i metode nazivaju se članovi klasa - sadržane su u objektima u smislu da se pozivaju za obradu
• Klase su tipovi podataka atributa pojedinih objekata
- određuju moguće vrednosti (stanja) podataka (objekata) - ne utiču na veličinu pojedinih objekata
- određuju moguće operacije (metode) nad podacima
(objektima)
Laslo Kraus 5 Uvod u objektno orijentisano programiranje Laslo Kraus 6 Uvod u objektno orijentisano programiranje

-1-
Uvod u objektno orijentisano programiranje
Laslo Kraus

Grafič
Grafički prikaz klasa Objekti i klase
• Objekti su primerci klasa
Krug klasa Kvadar
• Klase su šabloni pomoću kojih se prave objekti
poluprečnik atributi širina
visina • Kada treba napraviti neki objekat, dovoljno je reći kojoj klasi
dajPoluprečnik
izračunajObim dubina treba da pripada
promeniPoluprečnik metode izračunajZapreminu - ne treba iznova opisivati njegove osobine
izračunajPovršinu
- dovoljno je zadati vrednosti atributa koji se razlikuju od objekta
do objekta

Kvadar 15 P
širina 12
5 1.2
V P
visina 3.4
dubina 0.5 V1 P
1
1 0.1
V P
izračunajPovršinu 1
izračunajZapreminu 10 V

Laslo Kraus 7 Uvod u objektno orijentisano programiranje Laslo Kraus 8 Uvod u objektno orijentisano programiranje

Hijerarhija klasa Grafič


Grafički prikaz hijerarhije klasa
• Unutar klasa objekti mogu da se grupišu u potklase na Osnovna klasa Izvedena klasa
osnovu nekih specifičnih osobina (mogućih stanja i Natklasa Potklasa
ponašanja – atributa i metoda) Figura Predak Potomak
Roditelj Dete

2D_Figura 3D_Figura

Trougao Elipsa Kvadar Elipsoid Prizma

Pravoug Valjak

2D figure 3D figure
Figure

Laslo Kraus 9 Uvod u objektno orijentisano programiranje Laslo Kraus 10 Uvod u objektno orijentisano programiranje

Osnovni principi OOP Apstrakcija


• Apstrakcija • Zanemarivanje nebitnih detalja složenih objekata u
• Učaurivanje zavisnosti od trenutnih potreba
• Nasleđivanje - za istu vrstu objekata stvarnog sveta u model mogu da se
unose različiti skupovi osobina
• Polimorfizam
• Klasa osoba
• Ponovno korišćenje koda
- za praćenje rada biblioteke
• ime i prezime
• adresa
• broj lične karte
- za simuliranje rada lifta u višespratnici
• težina

Laslo Kraus 11 Uvod u objektno orijentisano programiranje Laslo Kraus 12 Uvod u objektno orijentisano programiranje

-2-
Uvod u objektno orijentisano programiranje
Laslo Kraus

Učaurivanje (1) Učaurivanje (2)


• Mehanizam kojim se podaci i postupci u klasama štite od klasa
nepoželjnih uticaja okoline javna metoda
- atributima može da se priđe samo pomoću metoda klase javan atribut
privatna metoda
• Obezbeđuje integritet stanja objekata privatan atribut
• Granatuje izvođenje samo opearcija predviđene u klasi pristup iz spoljnjeg sveta
• Smanjuje stepen povezanosti raznih delova sistema nedozvoljen pristup
pristup unutar klase
• Ostvaruje se podelom članova klasa na javne i privatne
- javni članovi mogu da se koriste bez ograničenja
• Javne metode čine dodirnu površ (interface) između
- privatni članovi mogu da se koriste samo unutar matične
unutrašnjosti objekata i sploljnjeg sveta
klase
- atributi su tipično privatni
• javni atributi su vrlo retki jer nisu zaštićeni o neprimerene upotrebe
- metode su uglavnom javne
• privatne metode mogu da postoje za pomoćne unutrašnje radnje
Laslo Kraus 13 Uvod u objektno orijentisano programiranje Laslo Kraus 14 Uvod u objektno orijentisano programiranje

Učaurivanje (3) Nasleđivanje (1)


Datum
sled • Potklase (izvedene klase) "nasleđuju" sve osobine natklase
dohvati
postavi

dan 12 (osnovne klase) i imaju svoje specifične osobine


12
31 dec
mesec dec sled
feb 2000 - svi atributi i metode natklase postoje i u potklasi
godina 2000 preth - u potklasi mogu da postoje dodatni atributi i metode
preth
sledeći - proširivanje natklase
31 feb
prethodni
31 feb 2000 - preciziranje natklase
• Odnos "je"
Bez učaurivanja može da se Metoda postavi ne dozvoljava
namesti i neispravan datum smeštanje neispravnog datuma
- potklasa je natklasa sa dodatnim osobinama
- objekti potklase mogu da se koriste ravnopravno sa objektima
natklase

Laslo Kraus 15 Uvod u objektno orijentisano programiranje Laslo Kraus 16 Uvod u objektno orijentisano programiranje

Nasleđivanje (2) Polimorfizam (1)


2D_Figura • Sposobnost programa da se prilagođava tipu podatka koji se
boja
crna upravo obrađuje
promeniBoju bela
3
3 - obrađujući skup objekata neke klase, među njima mogu da
3 žuta
1.2 plava budu objekti bilo koje potklase
28
55 - pojedine operacije (metode) na različite načine treba izvršavati
Pravougaonik Krug u natklasi kao i u pojedinim potklasama
a r - polimorfizam obezbeđuje da se takva operacija automatski
b izvršava na način koji odgovara klasi trenutnog objekta
• Mogu da postoje operacije koje u natklasi i ne mogu da se
izvode, već samo u potklasama
- u natklasi se predstavljaju apstraktnim metodama
• apstraktna klasa
- ostvaruju se samo u potklasama

Laslo Kraus 17 Uvod u objektno orijentisano programiranje Laslo Kraus 18 Uvod u objektno orijentisano programiranje

-3-
Uvod u objektno orijentisano programiranje
Laslo Kraus

Polimorfizam (2) Ponovno koriš


korišćenje koda
2D_Figura • Nove klase mogu da se stvaraju proširivanjem postojećih
boja klasa
promeniBoju - postojeći kôd se nasleđuje iz osnovne klase
izračunajPovršinu (P=?)
- treba samo ostvariti nove mogućnosti klase
• Gotove klase opšte namene mogu da se koriste u novim
programskim sistemima kao izgradni elementi
Pravougaonik Krug
a r
b P=r2π
P=ab

Laslo Kraus 19 Uvod u objektno orijentisano programiranje Laslo Kraus 20 Uvod u objektno orijentisano programiranje

Dijagrami klasa Asocijacija


• Grafičko prikazivanje klasa i odnosa među klasama • Logička povezanost između dve klase
- nasleđivanje • Povezane klase igraju određene uloge u ponašanju jedne i
- asocijacija druge klase u vezi
- sadržavanje - obe klase znaju za drugu klasu
• agregacija - samo jedna klasa zna za drugu klasu
• kompozicija • Primerak jedne klase može da bude u vezi sa određenim
- zavisnost brojem primeraka druge klase (1, *, 0..1, 0..*, 1..*, 2..5)
• Druga klasa se pojavljuje u prvoj klasi kao atribut koji
• UML (Unified Modelling Language)
pokazuje na primerak druge klase (skalarni atribut ili niz)
- standardan jezik za objektno orijentisano modeliranje
uloga klase B u klasi A
a b b
A B A B
0..1 0..* 0..* *

broj objekata klase B sa kojima objekat klase B ne zna za objekat


objekat klase A može biti povezan klase A kojim je povezan
Laslo Kraus 21 Uvod u objektno orijentisano programiranje Laslo Kraus 22 Uvod u objektno orijentisano programiranje

Sadrž
Sadržavanje Zavisnost
• Specijalna vrsta asocijacije • Ponašanje jedne klase zavisi od ponašanja druge klase,
• Primerak jedne klase sadrži jedan ili više primeraka druge mada te klase nisu u odnosu asocijacije
klase - prva klasa se ne pojavljuje među atributima druge klase i
- Agregacija obrnuto
• sadržani objekat može da postoji i izvan agregata • Primerci druge (nezavisne) klase se pojavljuju kao argumenti
• atribut u klasi agregata samo pokazuje na sadržani objekat
metoda ili lokalni podaci u metodama prve (zavisne) klase
• sadržavanje pomoću adrese
- Kompozicija
• sadržani objekat može da postoji samo unutar kompozicije
• atribut u klasi kompozicije sadrži sam objekat A B
• sadržavanje pomoću vrednosti
a b b
A B A B
0..* 0..* 1 *

agregacija objekat klase B zna kompozicija objekat klase B ne zna


za objekat čiji je deo za objekat čiji je deo
Laslo Kraus 23 Uvod u objektno orijentisano programiranje Laslo Kraus 24 Uvod u objektno orijentisano programiranje

-4-