Objektno-orijentisano programiranje

Iz Vikipedije, slobodne enciklopedije
Idi na navigaciju Idi na pretragu

Objektno orijentisano programiranje je paradigma programiranja, koja koristi objekte kao osnovu za projektovanje računarskih programa i različitih aplikacija softvera. Zasniva se na različitim tehnikama, kao što su nasleđivanje, modularnost, polimorfizam i enkapsulacija.[1][2]

Rešavanje problema paradigmom objektno-orijentisanog programiranja, je vrlo slično ljudskom načinu razmišljanja i rešavanju problema. Sastoji se od identifikovanja objekata i postavljanje objekata koji će se koristiti u odgovarajuću sekvencu za rešenje određenog problema. Radi se o dizajnu objekata čija će ponašanja kao jedinica i u njihovoj međusobnoj interakciji, rešiti određeni problem. Interakcija između objekata se sastoji u razmeni poruka, gde određena poruka usmerena prema određenom objektu, pokreće enkapsulirane operacije u tom objektu, čime se rešava deo obično šireg i složenijeg problema. Uopšteno gledano, objektno-orijentisano rešavanje problema se sastoji iz četiri koraka:

  1. identifikovanje problema
  2. identifikovanje objekata koji su potrebni za njegovo rešenje
  3. identifikovanje poruka koje će objekti međusobno slati i primati
  4. kreiranje sekvence poruka objektima, koje će rešavati problem ili probleme.

U paradigmi objektno orijentisanog programiranja, objekti su strukture podataka koje predstavljaju određeno i jasno definisano znanje o spoljašnjem svetu ili stvarnosti. Tipična organizacija je u hijerarhijske klase, gde svaka klasa objekta poseduje informacije o osobinama objekta koje se čuvaju u instancama promenljivih i koje su povezane (konceptom asocijacije) sa svakom instancom u određenoj klasi. Svaki objekat prepoznaje drugi objekat preko njegovog interfejsa. Podaci i logika svakog objekta su skriveni od drugih objekata. Time se omogućava razdvajanje implementacije od ponašanja objekta u interakciji sa drugim objektima.

Osnovne osobine objekata su identitet, stanje i ponašanje. Identitet predstavlja naziv objekta kojim se određeni objekat razlikuje od ostalih. Stanje objekta je deo prošlosti i sadašnjosti koje određuju ponašanje objekta u budućnosti. Ponašanje objekta je određeno operacijama koje se nad objektom mogu izvršiti, a aktiviranje operacije se vrši porukom.

Svaka klasa se sastoji od:

  • podataka - članova
  • objekat - član
  • funkcija članica - metoda

Podatak, član i objekat član su atributi klase, i pomoću njih je opisano stanje objekata. Objekat je model entiteta a atributi su esencijalne osobine entiteta koje ga opisuju. Metode definišu ponašanje objekata.

Principi objektno orijentisanog programiranja[uredi]

  1. Sve je objekat
  2. Program je skup objekata koji zadaju poslove jedan drugom preko slanja poruka
  3. Svaki objekat poseduje sopstvenu memoriju
  4. Svaki objekat pripada sopstvenoj klasi
  5. Svi objekti iste klase mogu primati iste poruke

Temelji objektno orijentisanog programiranja[uredi]

  1. Apstrakcija i skrivanje informacija
  2. Enkapsulacija
  3. Modularnost
  4. Polimorfizam
  5. Veze između klasa i nasljeđivanje

Apstrakcija je postupak razdvajanja bitnog od nebitnog. U toku ovog postupka neophodno je uočiti koji podaci i veze su bitne za dati domen problema, i one bitne podatke implementirati u klasi. Postoje tri grupe apstrakcije: apstrakcija predmeta, apstrakcija procesa i sintetska apstrakcija (apstrakcija virtuelne mašine).

Skrivanje podataka se definiše na sljedeći način: sve informacije o modulu moraju biti skrivene osim onih koje su eksplicitno deklarisane kao javne. Neposredna realizacija članova klase mora biti nedostupna klijentu.

Enkapsulacija je postupak objedinjavanja stanja i ponašanja u jednu celinu. Krajnji rezultat enkapsulacije je klasa. Drugi zadatak enkapsulacije je obezbeđivanje kontrole pristupa u cilju poštovanja principa skrivanja informacija.

Modularnost se odnosi na postupak razbijanja programa na manje dijelove koji mogu autonomno funkcionisati. Modularnost se primjenjuje kako bi se omogućila višestruka upotreba softverskih komponenti.

Polimorfizam je kontekstno zavisno ponašanje. Programske kategorije koje se mogu polimorfno ponašati su: promjenljive odnosno instance klase, operatori i metode. Polimorfizam se dijeli na univerzalni i ad hok. Univerzalni polimorfizam se dijeli na parametarski i inkluzioni. Ad hok polimorfizam se deli na preklapanje i koercitivni polimorfizam.

Nasljeđivanje predstavlja mogućnost hijerarhijske organizacije klasa. Kada jedna klasa nasledi drugu ona zadržava kompletan sadržaj klase koju nasljeđuje, i taj sadržaj može redefinisati ili proširiti. Postoji nekoliko vrsta nasljeđivanja.

Objektno orijentisani jezici[uredi]

Prevedeni:

Prevedeni u bajt kod za izvršavanje na virtuelnoj mašini:

Interpretirani:

Reference[uredi]

  1. ^ Kindler, E.; Krivy, I. (2011). „Object-Oriented Simulation of systems with sophisticated control”. International Journal of General Systems: 313—343. 
  2. ^ Lewis, John; Loftus, William (2008). Java Software Solutions Foundations of Programming Design 6th ed. Pearson Education Inc. ISBN 978-0-321-53205-3. , section 1.6 "Object-Oriented Programming"

Literatura[uredi]

Spoljašnje veze[uredi]