Objektno orijentirano programiranje - Wikipedia, slobodna enciklopedija

# Objektno orijentirano programiranje

### Sa Wikipedije, slobodne enciklopedije

Objektno Orijentirano Programiranje (OOP) u računarstvu je jedna od programskih paradigmi. Od ranih 1980-tih pa do danas ova paradigma je postala najutjecajnija paradigma u komercijalnom razvoju softvera. 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.).

## [uredi] Osnovni Principi

- Klasa (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čunarskim programom i izvorni kod klase treba (po mogućnosti) biti cijelovit i neovisan (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 (en. object) ili instanca je jedinica klase, koji postoji sa određenom informacijom (tzv. stanje ili en. state), npr. `Mujo` instanca `Osobe` 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

  - `ime::"Mujo Tokić"`
  - `spol::"Muški"`
  - `godiste::"1962"`.

- Zatvorenost (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 `ideNaPosao()`, 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 (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 `preselioNaAhiret()`, te klasu Ženu koja također proširuje klasu Osoba ali ima metodu `preselilaNaAhiret()`. 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 `preselioNaAhiret()` dok se žena `preselilaNaAhiret()`.
- Apstrakcija (en. abstraction) je pojednostavljivanje karakteristika objekta, gdje se zanemaruju detalji i uzimaju se samo zajedničke karakteristike klase. Npr. Mujo Tokić je ćelav ali ta karakteristika nije opisana ni u klasi Osoba ni u klasi Muškarac.
- Polimorfizam (en. polymorphism) je karakteristika klase čije ponašanje se mijenja ovisno o implementaciji. Tako u našem primjeru, metoda `sahrana()` može biti implementirana kao ukopavanje, kremiranje ili mumifikacija.

U biti klasa je poput arhitektonskog nacrta zgrad, po kojoj graditelj (kompajler i linker), tj. izvođač radova (runtime) je u stanju da izgradi objekat te zgrade.

## [uredi] Također pogledajte

- Računarska dizajn šema

Preuzeto sa: "http://bs.wikipedia.org../../../o/b/j/Objektno_orijentirano_programiranje.html"

Kategorije: Programiranje

##### Views

- Članak
- Razgovor
- Trenutna verzija

##### interakcija

- Pomoć
- Vrata zajednice
- Čaršija
- Novosti
- Dobrovoljni prilozi

##### Pretraga

##### Drugi jezici

- العربية
- Български
- Català
- Česky
- Dansk
- Deutsch
- English
- Esperanto
- Español
- Suomi
- Français
- עברית
- Magyar
- Bahasa Indonesia
- Ido
- Italiano
- 日本語
- Lietuvių
- Bahasa Melayu
- Nederlands
- ‪Norsk (bokmål)‬
- Polski
- Português
- Русский
- Svenska
- ไทย
- Türkçe
- Українська
- Tiếng Việt
- 中文
- 한국어