Razlika između verzija stranice "Objektno orijentirano programiranje"

[pregledana izmjena][pregledana izmjena]
Uklonjeni sadržaj Dodani sadržaj
SieBot (razgovor | doprinosi)
m robot Mijenja: mn:Объект хандалтат програмчлал; kozmetičke promjene
Red 1:
'''Objektno orijentisano programiranje''' (OOP) u [[Računarstvo i informatika|računarstvu]] je jedna od [[Programska paradigma|programskih paradigmi]]. Od ranih [[1980|1980-tih]] pa do danas ova paradigma je postala najuticajnija paradigma u komercijalnom razvoju [[softver|softvera]]a. [[Programski jezik|Programski jezici]] poput [[C++]] i [[Java programski jezik]] su svojom popularnošću utvrdili vodeći status OOP-a kao ''de facto'' obaveznog pristupa pri razvoju softvera danas, te i jezici koji tradicionalno nisu bili objektno orijentirani su naknadno dodali OOP koncepte (npr. [[Visual Basic]], [[Pascal programski jezik]] itd.).
 
== Osnovni principi ==
* '''[[Klasa (računari)|Klasa]]''' ([[Engleski jezik|en.]] ''class'') sadrži opis (definiciju) ''nečega'', npr. ''klasa Osoba''. Ovaj opis sadrži informaciju (npr. ime, godište, spol) i ponašanje, ili funkcionalnost (npr. [[metoda]] umri()). Ona je osnovica modularnosti i strukture objektno-orijentisanog programa. Kao takva treba biti poznata osobama koje nisu programeri, ali su upoznati sa okvirom problema koji treba riješiti [[Računarski program|računarskim programom]] i [[izvorni kod]] klase treba (po mogućnosti) biti cijelovit i nezavisan (''opisati coupling''). Samo sa takvom modularnošću klasa je u stanju da odgovara aspektu problema koji program treba da riješi i istovremeno pojednostavi odnos (mapiranje) između problema i programa.
* '''[[Objekat (računari)|Objekat]]''' ([[Engleski jezik|en.]] ''object'') ili instanca je jedinica klase, koji postoji sa određenom informacijom (tzv. '''stanje''' ili [[Engleski jezik|en.]] ''[http://en.wikipedia.org/wiki/State_(computer_science) state]''), npr. <code>Mujo</code> instanca <code>Osobe</code> je ''runtime'' reprezentacija Osobe u programskom prostoru. Svaki objekat ima samo svoju informaciju (stanje) koje može biti dijeljeno između više instanci, što se u računarstvu zove ''[[reentrant]]''. Tako npr. naš Mujo objekat bi imao
:* <code>ime::"Mujo Tokić"</code>
:* <code>spol::"Muški"</code>
:* <code>godiste::"1962"</code>.
* '''[[Zatvorenost]]''' ([[Engleski jezik|en.]] ''encapsulation'') je koncept po kojem je informacija u klasi zaštićena od direktnog pristupa i jedini način da se promjeni informacija je kroz utemeljene metode. Tako npr. ako napravimo metodu <code>ideNaPosao()</code>, kojom Mujo ide na posao biciklom, onda kad on kupi auto i ide autom na posao, ta promjena je skrivena unutar metode koja samo prikaže rezultat (tj. da je na putu na posao a ne čime ide).
* '''[[Nasljedstvo (računari)|Nasljedstvo]]''' ([[Engleski jezik|en.]] ''inheritance'') je koncept po kojem se može definisati klasna hijerarhija, tj. obiteljska loza klase gdje jedna klasa može da proširi (''extend'') drugu klasu. Tako u našem primjeru možemo definisati klasu ''Muškarac'' koja proširuje klasu ''Osoba'' i definiše novu metodu <code>preselioNaAhiret()</code>, te klasu ''Ženu'' koja također proširuje klasu ''Osoba'' ali ima metodu <code>preselilaNaAhiret()</code>. I ''Muškarac'' i ''Žena'' nasljeđuju činjenike ime, spol i godište, te metodu, tj. ponašanje umri() (i muškarci i žene umiru) ali se samo objekat muškarca <code>preselioNaAhiret()</code> dok se žena <code>preselilaNaAhiret()</code>.
Red 15:
 
== Također pogledajte ==
* [[Računarska dizajn šema]]
 
[[Kategorija:Programiranje]]
Red 52:
[[lv:Objektorientētā programmēšana]]
[[mk:Објектно-ориентирано програмирање]]
[[mn:Объект Хандалтатхандалтат Програмчлалпрограмчлал]]
[[ms:Pengaturcaraan berorientasi objek]]
[[nl:Objectgeoriënteerd]]