Docsity
Docsity

Pripremite ispite
Pripremite ispite

Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u


Nabavite poene za preuzimanje
Nabavite poene za preuzimanje

Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan


Školska orijentacija
Školska orijentacija


Osnovni principi objektno orijentisanog programiranja - OOP, Slajdovi od Objektno orijentisano programiranje

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

2022/2023

Učitan datuma 13.01.2023.

AnicaDuko5
AnicaDuko5 🇸🇷

5

(2)

48 dokumenti

1 / 62

Toggle sidebar

Ova stranica nije vidljiva u pregledu

Ne propustite važne delove!

bg1
Objektno orijentisano
programiranje
Aleksandra Klašnja-Milićević
Marko Marković
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e

Delimični pregled teksta

Preuzmite Osnovni principi objektno orijentisanog programiranja - OOP i više Slajdovi u PDF od Objektno orijentisano programiranje samo na Docsity!

Objektno orijentisano

programiranje

Aleksandra Klašnja-Milićević Marko Marković

Teme koje će biti obrađene

 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

Osnovni principi objektno

orijentisanog

programiranja - OOP

OOP – osnovni koncepti

Objekat - U softverskom smislu, objekat se može posmatrati kao neka vrsta paketa (svežanj) koji se sastoji od stanja i ponašanja.

  • Softverski objekti se koriste da modeliraju objekte iz realnog sveta, a za koji se pravi softversko rešenje.  Klasa - Klasa je model/šema/plan/prototip na osnovu koga i po ugledu na koga se kreiraju objekti iste familije.  Nasleđivanje – Nasleđivanje omogućuje moćan i prirodan mehanizam za organizaciju i struktuiranje softvera.  Paket - paket je imenovani prostor/celina koja omogućava da se klase i interfejsi organizuju na smislen i logički povezan način.

Objekti

 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.

Objekti

 Konceptualno, softverski objekti su slični objektima iz realnog sveta i oni se, naravno sastoje iz stanja i odgovarajućeg ponašanja.

Objekti

 Sa odgovarajućim vrednostima

  • stanja (polja koja predstavljaju model, boju, konjske snage) i
  • metodima za pristup i promenu tekućeg stanja (oključaj, promeni boju, ...)  uspostavljena je kompletna kontrola i način pristupa i menjanja stanja objekta kao reakcija na poruke pristigle iz spoljašnjeg okruženja.

Objekti

 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.

Objekti

 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).

OOP - osnovni koncepti

 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.

OOP - osnovni koncepti

 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:

OOP - osnovni koncepti

 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).

Referencijalni tipovi

podataka

Referencijalni tipovi podataka

 Veći programi – pogodno je da se delovi programa koji čine logičku celinu

grupišu zajedno , time se omogućava:

  • viši nivo apstrakcije
  • veća čitljivost progama
  • jednostavniji timski rad na programu
  • lakše održavanje, modifikacija i proširenje gotovog programa

 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