






















































Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Pripremite ispite
Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Nabavite poene za preuzimanje
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
OOP. ▷ Pojava objektno-orijentisanih jezika početkom 80-ih godina prošlog veka. ▷ Jedan od najvažnijih događaja u razvoju programskih jezika od trenutka ...
Tipologija: Slajdovi
1 / 62
Ova stranica nije vidljiva u pregledu
Ne propustite važne delove!























































Aleksandra Klašnja-Milićević Marko Marković
Uvod i koncepti OOP Klase Nasleđivanje Interfejsi Modifikatori, kreiranje instance klase, uništavanje instance klase Nabrojivi tip podataka Stringovi Operatori nad referencijalnim tipovima podataka Paketi Izuzeci Kolekcije Razvoj vizuelnih aplikacija
Objekat - U softverskom smislu, objekat se može posmatrati kao neka vrsta paketa (svežanj) koji se sastoji od stanja i ponašanja.
Identifikacija stanja i ponašanja objekata iz realnog sveta je sjajan način da se započne razmišljanje u duhu objektno- orijentisanog programiranja. Ako počnemo da posmatramo razne objekte iz okruženja oko nas, uočićemo svakako da oni variraju po svojoj složenosti i kompleksnosti i da imaju siromašnija ili bogatija i stanja i ponašanja. Takođe se može uočiti da neki objekti u sebi sadrže druge objekte. Sve ovo nam pomaže da objekte iz realnog okruženja „prevedemo“, odnosno na adekvatan način „prikažemo“ u svetu objektno-orijentisanog programiranja.
Konceptualno, softverski objekti su slični objektima iz realnog sveta i oni se, naravno sastoje iz stanja i odgovarajućeg ponašanja.
Sa odgovarajućim vrednostima
Pakovanje/uključivanje koda zajedno sa stanjem u jedinstvenu celinu tj. softverski objekat, pruža čitav niz prednosti:
Modularnost : Izvorni kod jednog objekta može da se piše i menja nezavisno od izvornog koda drugih objekata.
Skrivanje informacija : Kako se komunikacija sa objektom odvija preko metoda, njegova unutrašnja implementacija ostaje skrivena za spoljašnje okruženje.
Objekat treba posmatrati kao celinu koja zna kako da reaguje i odgovori na konkretnu poruku. Međutim treba tako imati u vidu da objekti na istu poruku mogu da odgovore na različit/drugačiji način. Tako na primer poruka „štampaj“ može da produkuje različite rezultate u zavisnosti od toga kom je objektu poslata. Ta osobina objekata, da različiti objekti mogu na istu poruku da odgovaraju na različite načine, se zove polimorfizam (eng. polymorphism).
Objekti koji sadrže isti tip podataka i koji odgovaraju na iste poruke na isti način pripadaju istoj porodici objekata odnosno pripadaju istoj klasi (eng. class). U suštini, u OOP primarni koncept je klasa, i proizvoljan broj objekata (iz iste familije) se može kreirati koristeći klasu kao etalon (u literaturi je poznato puno sinonima za ovaj termin: model, uzorak, itd.). Međutim, može da postoji i čitav niz sličnih objekata koji nisu nastali iz iste klase.
Drugi nivo grupisanja, koji nije tako očigledan, može da se realizuje u odnosu na podatke koji su potrebni za crtanje svakog od ovih tipova objekata. Tako možemo grupisati poligone i krive kao „objekte više tačaka“, a duži, četvorougle i ovale kao „objekte dve tačke“. (Duž je određena sa dve krajnje tačke, četvorougao sa dve tačke i dva naspramna ugla, a oval sa dva naspramna ugla četvorougla u koji je upisan). Relacije između pomenutih koncepata, od kojih svaki predstavlja jednu klasu, su prikazani na slici:
Klase ObjekatViseTacaka i ObjektiDveTacke su direktne podklase klase IscrtavajućiObjekat. Klasa Duz je direktna podklasa klase ObjekatDveTacke i indirektna klasa klase IscrtavajuciObjekat. Dakle, podklasa neke klase nasleđuje (eng. inherits) svojstva svoje nadklase. Podklasa takođe može da doda i neka nova svojstva (što je najčešći slučaj) na ona nasleđena iz nadklase, ali i da „promeni“ postojeća svojstva (eng. override).
Veći programi – pogodno je da se delovi programa koji čine logičku celinu
grupišu zajedno , time se omogućava:
Kod jezika treće generacije, kao što su Pascal i Modula – 2, grupisanje
podataka u slogove i nizove (složene tipove) se pokazalo kao velika prednost u odnosu na starije jezike koji koriste samo proste tipove podataka
Iako pomenuti jezici podržavaju pravljenje složenih tipova podataka oni
direktno ne obezbeđuju i grupisanje delova programskog koda sa podacima kojima taj deo koda pristupa