Professional Documents
Culture Documents
STUDENT:
PROFESOR:
ASISTENT:
SADRŽAJ
1. UVOD................................................................................................................................................ 4
1.1. PROBLEM, PREDMET I OBJEKT ISTRAŽIVANJA ......................................................................... 2
1.2. SVRHA I CILJEVI ISTRAŽIVANJA................................................................................................. 2
1.3. RADNA HIPOTEZA I POMOĆNE HIPOTEZE................................................................................ 3
1.4. ZNANSTVENE METODE ............................................................................................................ 3
1.5. STRUKTURA RADA .................................................................................................................... 4
2. OPĆENITO O OBJEKTNO ORIJENTIRANOM PROGRAMIRANJU ........................................................ 5
2.1. KLASE I ČLANOVI ...................................................................................................................... 7
2.2. NASLJEĐIVANJE ........................................................................................................................ 7
2.3. POLIMORFIZAM ....................................................................................................................... 8
3. JAVA ................................................................................................................................................. 9
3.1. OBJEKTNO ORIJENTIRANO PROGRAMIRANJE U JAVI ............................................................ 11
3.1.1. DEFINICIJA KLASE ........................................................................................................... 11
3.1.2. ATRIBUTI U DEFINICIJI KLASE ......................................................................................... 11
3.1.3. METODE U DEFINICIJI KLASE .......................................................................................... 12
3.2. PROCEDURALNO PROGRAMIRANJE ....................................................................................... 12
4. POREĐENJE I RAZLIKE OOP I PP ..................................................................................................... 16
5. ZAKLJUČAK ..................................................................................................................................... 22
1. UVOD
Moć OOP dolazi do izražaja naročito kod većih i složenijih programa. Tehnike
OOP su nastale kao pokušaj prevazilaženja krize softvera osamdesetih godina,
koja se zapravo i javila kao nemogućnost efikasne primjene proceduralnih i
modularnih tehnika programiranja na rješavanju složenih problema.“
Svrha ovog istraživanja jeste upoznavanje tehnika kao i načina korištenja OOP,
te postepeni prelazak s proceduralnog na OO programiranje.
Ciljevi ovog istraživanja jesu kroz praktične primjere pokazati načine i tehnike
OOP, s osvrtom na razlike između JAVE i C -a.
1
http://www.link-elearning.com/site/kursevi/lekcija/962
2
1.3.RADNA HIPOTEZA I POMOĆNE HIPOTEZE
1.PH. Savremenije tehnike programiranja daju nam veći opseg korištenja mnogih
načina programiranja (objekti, klase, polimorfizam, nasljeđivanje).
1.4.ZNANSTVENE METODE
- Metoda klasifikacije
- Metoda poređenja.
3
1.5.STRUKTURA RADA
Drugo poglavlje, Općenito o OOP nas upućuje u samo OOP, tehnike i načine
kreiranja porgrama.
Treće poglavlje, JAVA, nam govori o JAVA programskom jeziku kao osnovi
OOP. Upoznaje nas s Javinom sintaksom i implementacijom nekih zadataka.
Zatim, nešto o proceduralnom programiranju, o programiranju u proceduralnim
jezicima, te njihovom sve rjeđom upotrebom.
4
2. OPĆENITO O OBJEKTNO ORIJENTIRANOM
PROGRAMIRANJU
- klase
- objekti
- poruke.
2
„Klasama se opisuje struktura i ponašanje pojedinih primjeraka klase.
Pojedinačni primjerci klase (instance) nazivaju se objekti. Svi objekti koji
pripadaju jednoj klasi imaju strukturu koja je definisana klasom kojoj pripadaju, i
nad njima se mogu izvršavati samo operacije koje su definisane tom klasom.
Klase se posmatraju kao šabloni za kreiranje novih objekata. U tom smislu je
pojam klase sličan pojmu tipa. Pripadnost klasi je svojstvo objekta, dok je
pripadnost tipu svojstvo promjenljivih i izraza. Svaka klasa se može posmatrati
kao cjelina u kojoj su, pored polja u kojima su opisani podaci (svojstva), opisana
i polja koja predstavljaju funkcije i/ili procedure. Ovakve funkcije, odnosno
procedure, definisane unutar klasa, nazivaju se metodi klase.
2
Miloš Milenov, Programski jezici, Objektno orijentirano programiranje, Beograd, 2006. god.,
365.str.
5
Osnovni pojmovi OOP: objekat, primjerak klase, instanca, klasa (operacije i
atributi), metode, funkcije, operacije, promjenljive, podaci, varijable i atributi.
3
„OOP je zasnovano na konceptu objekata. Objekti su struktura podataka sa
pridruženim skupom procedura i funkcija koje se nazivaju metode i služe za
operisanje podacima koji čine objekat.
- jednostruko nasljeđivanje
- višestruko nasljeđivanje
- polimorfizam.
6
- Mogućnost korištenja već definisanih klasa za građenje hijerarhije klasa
naziva se nasljeđivanje.
2.1.KLASE I ČLANOVI
Primjer automobil:
Posmatrajmo automobil kao „nešto“ što posjeduje: vrata, sjedišta, točkove,
prozore. Zatim ga posmatrajte kao „nešto“ što ima mogućnost da se: pomjera,
ubrza, uspori, stane, parkira itd. Klasa nam omogućava da sve ovo rečeno
enkapsuliramo (upakujemo) ove različite dijelove i različite funkcije u kolekciju
koja se naziva objekat.
Enkapsuliranje svih informacija koje znamo o automobilu u jednu klasu ima neke
prednosti. Sve se nalazi na jednom mjestu pa olakšava manipulisanje podacima.
Promjenljive članice, također poznate kao podaci članovi, jesu članovi u klasi
koje upućuju na promjenljive u klasi. Npr. klasa auto bi mogla imati promjenljive
članice koje predstavljaju sjedišta, tip radio, gume i td.
Funkcije članice, također poznate kao metodi, jesu funkcije u klasi. One su dio
klase isto koliko i promjenljive članice. Određuju šta objekti klase mogu uraditi.
Npr. metodi klase auto bi mogli uključiti Start() i Break().
2.2.NASLJEĐIVANJE
Nove klase mogu biti definisane tako da naslijede sva svojstva određene klase
(klasa roditelj), ali i da se tim svojstvima dodaju nova.
7
- Programeri mogu da implementiraju superklase koje se nazivaju apstraktne
klase, a definišu generička ponašanja. Apstraktne superklase definišu i mogu
parcijalno da implementiraju ponašanje podklasa.
4
„Nekada postoji potreba da izvedena klasa ima osobine više osnovnih klasa
istovremeno. Tada se radi o višestrukom nasljeđivanju.
Klasa se deklariše kao nasljednik više klasa tako što se u zaglavlju deklaracije,
iza znaka : navode osnovne klase razdvojene zarezom.
2.3.POLIMORFIZAM
Primjer:
4
Miloš Milenov, Programski jezici, Objektno orijentirano programiranje, Beograd, 2006 .g., 424.str.
8
3. JAVA
Java je srodnik jezika C++, koji je direktan potomak jezika C. Veći dio svojih
osobina Java je naslijedila od ova dva jezika. Iz jezika C, Java je preuzela
sintaksu.
Java programi mogu da rade na svakoj platformi koja podržava Javu zahvaljujući
sljedećem:
Java kompajler prevodi izvorni Java kod u tzv. Byte kod koji predstavlja
mašinske instrukcije za JVM. Kada se izvršava Java program koji se zove Java
interpreter tumači byte kod i zatim izvršava akcije koje byte kod specificira
unutar JVM.
Svaki računar koji ima implementirano Java okruženje, izvršit će taj program
podjednako dobro kao i svaki drugi, a Java interpreter, koji se nalazi između
programa i fizičke mašine, spriječit će neautorizovane akcije programa.
9
Slika 1. Početni program u Javi
Napravili smo neku klasu koja je „javna“ i dali joj naziv zdravo. Unutar nje
nalazi se zaglavlje metode. Naziv metode je riječ main. Riječi public static void
pokazuju Java prevodiocu način korištenja main metode. String [] args opisuju
informaciju koja će biti proslijeđena metodu svaki put kada bude pozvan. Naziva
se lista parametara. System.out. je objekat čiji je zadataka da primi poruku koju
treba prikazati na ekranu. Println metoda je operacija koja se izvršava nad
porukom.
10
3.1.OBJEKTNO ORIJENTIRANO PROGRAMIRANJE U JAVI
Klasa se može shvatiti kao novi tip, ona određuje koje vrijednosti mogu dobiti
promjenljive (objekti tog tipa i koje operacije se mogu vršiti nad njima).
Atributi klase
Atributi mogu biti proizvoljnog tipa ili reference na objekte proizvoljne klase,
uključujući klasu koju definišemo.
Postoje dvije vrste atributa:
11
- Statički i
- Nestatički atributi.
Nestatički atribut: svako objekat klase posjeduje svoju sopstvenu kopiju svakog
od nestatičkih atributa koji se pojavljuju u definiciji te klase, i ti atributi imat će
svoje sopstvene vrijednosti. On se u definiciji klase deklariše na uobičajen način:
<tip> <ime> i eventualno se može zadati inicijalna vrijednost.
Metode su zapravo funkcije i tako se i definišu. Tip vrijednosti koju metod vraća
može biti void ili proizvoljan tip (string, int). Lokalne promjenljive se ne
inicijaliziraju automatski, već se mora eksplicitno izvršavati njihova
inicijalizacija.
- Statički i
- Nestatički.
3.2.PROCEDURALNO PROGRAMIRANJE
5
„Znatno napredniju skupinu programskih jezika čine tzv. proceduralni jezici.
Ova skupina predstavlja najširu skupinu programskih jezika, i u nju spada veliki
broj danas korištenih programskih jezika, kao što su BASIC, Pascal, Fortran,
Cobol, C...
5
http://www.computer.com.ba/II/01programski_jezici/index.htm 12.11.'17.g.
12
Karakteristika ovih jezika jeste da za rješavanje bilo kakvog problema uz pomoć
ovih jezika, moramo računaru jasno i precizno opisati postupak kako se rješava
taj problem (sastavljanje algoritma za rješavanje problema).“
13
C- ovaj programski jezik po osnovnom konceptu je najsličniji Pascalu, mada se
po sintaksi dosta razlikuje od njega. Za razliku od Pascala, sintaksa jezika C je
dosta slobodnija, što programeru daje znatno više mogućnosti, ali pod cijenu
pisanja nejasnih programa, u kojima se, nakon izvjesnog vremena, više ne snalazi
niti sami autor.
6
„C programski jezik razvijen je u ranim 70.-tim godinama 20.st. Autor ovog
jezika je Dennis Ritchie, no značajan doprinos razvoju ovog jezika dali su i drugi
programeri.On je stvorio ovaj programski jezik za rješavanje praktičnih problema
kodiranja sistemskih programa i jezgro OS UNIX, koji je praktično u cjelosti
napisan u C-u.
6
https://stefanpeka121.wordpress.com/category/proceduralni-programski-jezici/ 12.11.'17.g.
14
Slika 2. Osnovni program u C-u
Izvor: C-Free 5
15
4. POREĐENJE I RAZLIKE OOP I PP
7
„Mnogi C programeri koji sanjaju strukture, ili razmišljaju o tome kako će svoju
novu rutinu riješiti pomoću pokazivača na funkcije, dvoume se oko toga da li je
C++ dostojan njihovog koda. Niti jedna od ovih metoda nije dovoljno dobra.
Objektna tehnologija također ima svoje prednosti i mane (naravno nije niti ona
svemoguća) i ne može riješiti baš sve probleme. „
PROCEDURALNO PROGRAMIRANJE:
7
http://free-zg.htnet.hr/jsribar/demistif.pdf 12.11.'17.g.
16
Pr.: Napraviti okvir i u njemu napisati ime.
Izvor: C-Free 5
17
Ovako u JAVI:
Izvor: NetBeans
18
Kako to izgleda u C-u:
Slika 5. Primjer
Izvor: C-Free 5
19
Ovako izgleda u JAVI:
Slika 6. Primjer
Izvor: NetBeans
20
C
Slika 7. Semafor
Izvor: C-Free 5
JAVA
Slika 8. Semafor
Izvor: NetBeans
21
5. ZAKLJUČAK
22
LITERATURA
- http://www.link-elearning.com/site/kursevi/lekcija/962 12.11.'17.g.
- http://www.computer.com.ba/II/01programski_jezici/index.htm 12.11.'17.g.
- https://stefanpeka121.wordpress.com/category/proceduralni-programski-
jezici/ 12.11.'17.g.
- http://free-zg.htnet.hr/jsribar/demistif.pdf 12.11.'17.g.
23