53
 Viši  Viši p programski je rogramski jezici: zici:  Metode programiranja Metode programiranja –  Objektno Objektno orjentisano programiranje orjentisano programiranje prof prof dr Gordana dr Gordana Đorđević Đorđević

2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

  • Upload
    psy

  • View
    233

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 1/53

 Viši Viši pprogramski jerogramski jezici:zici:

 Metode programiranjaMetode programiranja – – ObjektnoObjektnoorjentisano programiranjeorjentisano programiranje

profprof dr Gordanadr Gordana ĐorđevićĐorđević

Page 2: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 2/53

Metode programiranjaMetode programiranjaPod metodom programiranjaPod metodom programiranja

podrazumevamo skup pravila,podrazumevamo skup pravila,procesa, mehanizama i dokumenataprocesa, mehanizama i dokumenatako i definišu način roizvodn eko i definišu način roizvodn e

softverasoftvera..

Mod!arno programiranjeMod!arno programiranje "trktrno programiranje"trktrno programiranje

ObjektnoObjektno##orjentisano programiranjeorjentisano programiranje

Page 3: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 3/53

Mod!arno programiranjeMod!arno programiranje

Metod mod!arnog programiranja podrazmeva dekompozicijMetod mod!arnog programiranja podrazmeva dekompozicij jednog s!o$enog %komp!eksnog& programa na mod!e 'ime se jednog s!o$enog %komp!eksnog& programa na mod!e 'ime se

obezbeđje jednostavnost i efikasnost programaobezbeđje jednostavnost i efikasnost programa (va osnovna koncepta o kojima treba voditi ra'na pri ovoj(va osnovna koncepta o kojima treba voditi ra'na pri ovoj

dekompoziciji s:dekompoziciji s:

  – –povezanosti naredbi %instrkcija& ntar jednog mod!a. *i!j jepovezanosti naredbi %instrkcija& ntar jednog mod!a. *i!j jeda instrkcije bd što 'vršće medjsobno povezane+ tako dada instrkcije bd što 'vršće medjsobno povezane+ tako da'ine jedn ko)erentn ce!in. Visok stepen 'vrstoće svi) mod!a'ine jedn ko)erentn ce!in. Visok stepen 'vrstoće svi) mod!akazje na dobro izvršen pode! programa na mod!e ikazje na dobro izvršen pode! programa na mod!e iobratno.obratno.

povezanost mod!apovezanost mod!a – – koja se odnosi na raz!i'ite ob!ikekoja se odnosi na raz!i'ite ob!ikemeđsobnog povezivanja mod!a.međsobnog povezivanja mod!a.

Page 4: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 4/53

Mod!arno programiranjeMod!arno programiranje 'vrstoća %ko)ezija& mod!a'vrstoća %ko)ezija& mod!a

,ogi'ka 'vrstoća ,ogi'ka 'vrstoća # # gde se kao kriterijm koristi !ogi'kagde se kao kriterijm koristi !ogi'kapovezanost naredbi dat ce!in+ pri 'em se naredbepovezanost naredbi dat ce!in+ pri 'em se naredbeodnose na neki skp aktivnosti date !ogi'ke ce!ine kojiodnose na neki skp aktivnosti date !ogi'ke ce!ine kojiozna'ava najni$i stepen 'vrstoće mod!a.ozna'ava najni$i stepen 'vrstoće mod!a.

omn ac s a vrs o a  omn ac s a vrs o a #  # g e se ao r er m za oceng e se ao r er m za ocenpovezanosti naredbi ntar mod!a koristi skp podataka napovezanosti naredbi ntar mod!a koristi skp podataka nakoje se te naredbe odnose. Ovde+ dak!e+ nije bitan redos!edkoje se te naredbe odnose. Ovde+ dak!e+ nije bitan redos!edobav!janja fnkcija+ već to da sve naredbe koriste isti skpobav!janja fnkcija+ već to da sve naredbe koriste isti skppodataka %npr. skp matemati'ki) podataka o datom artik!&.podataka %npr. skp matemati'ki) podataka o datom artik!&.

.nkciona!na 'vrstoća .nkciona!na 'vrstoća # # gde se kao kriterijm koristigde se kao kriterijm koristiprob!emska orijentisanost naredbi mod!a %npr.prob!emska orijentisanost naredbi mod!a %npr.izra'navanje ma!oprodajne cene&. "ve naredbe ovog tipaizra'navanje ma!oprodajne cene&. "ve naredbe ovog tipamod!a odnose se+ prema tome+ na izvodjenje neke preciznomod!a odnose se+ prema tome+ na izvodjenje neke preciznodefinisane fnkcije %'itanje+ pisanje+ obrada itd.&. -od ovi)definisane fnkcije %'itanje+ pisanje+ obrada itd.&. -od ovi)mod!a ostvaren je najviši stepen 'vrstoće.mod!a ostvaren je najviši stepen 'vrstoće.

Page 5: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 5/53

Mod!arno programiranjeMod!arno programiranje

povezanost mod!apovezanost mod!a /ezs!ovno povezivanje/ezs!ovno povezivanje # # imamo s!'aj kada jedan mod!imamo s!'aj kada jedan mod!

bezs!ovno poziva drgi mod! kao svoj podprogram+bezs!ovno poziva drgi mod! kao svoj podprogram+predajći m podatke %parametre& na obrad+'ekajćipredajći m podatke %parametre& na obrad+'ekajćirez!tate obrade+ da bi se+ narednom korak+ istovetnarez!tate obrade+ da bi se+ narednom korak+ istovetnatransakcija obavi!a sa s!edećim mod!om itd.transakcija obavi!a sa s!edećim mod!om itd.

0s!ovno povezivanje0s!ovno povezivanje # # se jav!ja s!'aj kada prvi mod!se jav!ja s!'aj kada prvi mod!mo$e pozvati drgi i!i treći mod! samo pod odredjenimmo$e pozvati drgi i!i treći mod! samo pod odredjenim

.. 1terativno povezivanje1terativno povezivanje # # predstav!ja ob!ik višestrkogpredstav!ja ob!ik višestrkog

pozivanja drgog mod!a od strane prvog mod!a. 2av!ja sepozivanja drgog mod!a od strane prvog mod!a. 2av!ja se s!'ajevima postojanja tzv. programski) pet!ji. s!'ajevima postojanja tzv. programski) pet!ji.

Page 6: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 6/53

Mod!arno programiranjeMod!arno programiranje

"vaki mod! ima tri obe!e$ja:"vaki mod! ima tri obe!e$ja:

 ##  koje ga'ine&koje ga'ine&## vez %!inij povezanosti sa drgimvez %!inij povezanosti sa drgim

mod!om radi razmene podataka&mod!om radi razmene podataka&## !ogik %ntrašnja strktra mod!a&.!ogik %ntrašnja strktra mod!a&.

Page 7: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 7/53

 3!ati za programiranje 3!ati za programiranje

(a bi se izvrši!o projektovanje svakog(a bi se izvrši!o projektovanje svakog

415O dijagrami415O dijagrami "istemski dijagrami toka"istemski dijagrami toka

6abe!e i stab!a od!'ivanja6abe!e i stab!a od!'ivanja 5rirodni jezik %psedokod&5rirodni jezik %psedokod& 5rogramski dijagrami toka5rogramski dijagrami toka

Page 8: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 8/53

 3!ati za programiranje: 415O dijagrami 3!ati za programiranje: 415O dijagrami

za prikazivanje za)tevanog iz!aza programa i naza prikazivanje za)tevanog iz!aza programa i na

procesiranjaprocesiranja

Proces obrade

Zahtevani izlazPotrebni ulazni podaci

Page 9: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 9/53

 3!ati za programiranje: "istemski 3!ati za programiranje: "istemskidijagrami tokadijagrami toka

  s! e za opis komponenata i resrsas! e za opis komponenata i resrsara'narskog sistema koje koristi programra'narskog sistema koje koristi program

Page 10: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 10/53

 3!ati za programiranje: 6abe!e i stab!a 3!ati za programiranje: 6abe!e i stab!aod!'ivanja 1od!'ivanja 1 – – 64786478 ## 7,"77,"7

Page 11: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 11/53

 3!ati za programiranje: 5rirodni jezik 3!ati za programiranje: 5rirodni jezik%psedokod&%psedokod&

strktirani prirodni jezik strktirani prirodni jezik  Ovom te)nikom se a!goritam prikazje kao niz brojemOvom te)nikom se a!goritam prikazje kao niz brojem

ozna'eni) koraka. "vaki korak sadr$i jedn i!i višeozna'eni) koraka. "vaki korak sadr$i jedn i!i više

re'enica prirodnog jezika kojim se opisje procesre'enica prirodnog jezika kojim se opisje procesodnosno operacija koj tom korak treba izvršiti.odnosno operacija koj tom korak treba izvršiti.

 

a gora gor aam za spreman e a a:m za spreman e a a:9. 3ko 'ajnik nema vode napnite 'ajnik vodom9. 3ko 'ajnik nema vode napnite 'ajnik vodom. "tavite 'ajnik na šporet i k!j'ite odgovarajć ring!.. "tavite 'ajnik na šporet i k!j'ite odgovarajć ring!.

;. 3ko šo!ja za 'aj nije prazna ispraznite je.;. 3ko šo!ja za 'aj nije prazna ispraznite je.<. "tavite !išće 'aja šo!j za 'aj.<. "tavite !išće 'aja šo!j za 'aj.=. 3ko voda 'ajnik nije provre!a idite na korak =+ ako jeste idite=. 3ko voda 'ajnik nije provre!a idite na korak =+ ako jeste idite

na korak >.na korak >.

>. 1sk!j'ite ring!.>. 1sk!j'ite ring!.?. "ipajte vod iz 'ajnika šo!j.?. "ipajte vod iz 'ajnika šo!j.

Page 12: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 12/53

5sedokod5sedokod 5rob!em: 5rikazati %na monitor ra'nara+ na5rob!em: 5rikazati %na monitor ra'nara+ na

primer& dvostrk vrednost broja koji jeprimer& dvostrk vrednost broja koji je

pred)odno net ra'nar %pomoć tastatre+pred)odno net ra'nar %pomoć tastatre+na primer&.na primer&.  3!goritam priprodnom jezik: 3!goritam priprodnom jezik:

9. 6ra$iti od korisnika da z pomoć tastatre9. 6ra$iti od korisnika da z pomoć tastatrenese broj.nese broj.

. 0'itati broj koji korisnik kca na tastatri.. 0'itati broj koji korisnik kca na tastatri.

;. 5omno$iti 'itani broj sa brojem .;. 5omno$iti 'itani broj sa brojem .<. 5rikazati rez!tat operacije iz koraka ; na<. 5rikazati rez!tat operacije iz koraka ; na

monitor ra'nara.monitor ra'nara.

Page 13: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 13/53

5sedokod5sedokod

5rob!em:5rob!em: OdreOdreditedite da !i je zadati brojda !i je zadati broj nn paran i!iparan i!ineparan:neparan:

9.9. 5O@815O@81

.. 5ro'itaj vrednost5ro'itaj vrednost nn..;.;. 5ode!i5ode!i nn sa i zapamti ostatak sa i zapamti ostatak remrem..<.<.  3ko je 3ko je remrem A idi na stavk ?.A idi na stavk ?.=.=. 1spiši B1spiši Bnn je neparan brojC. je neparan brojC.

>.>. 1di na stavk D.1di na stavk D.?.?. 1spiši B1spiši Bnn je paran brojC. je paran brojC.D.D. -E32-E32

Page 14: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 14/53

 3!ati za programiranje: 5rogramski dijagrami 3!ati za programiranje: 5rogramski dijagramitokatoka

b!ok dijagrami koji %a!goritamski& specificiraj sve korake ib!ok dijagrami koji %a!goritamski& specificiraj sve korake iprocese tokom odvijanja programaprocese tokom odvijanja programa

5rogramski dijagrami toka5rogramski dijagrami toka koristi niz grafi'ki)koristi niz grafi'ki)

%stre!icama&%stre!icama& kojima se pokazje niz kojkojima se pokazje niz kojemem ćećekoraci opisani grafi'kim simbo!ima bitikoraci opisani grafi'kim simbo!ima bitiizvršavani.izvršavani.

0ntar grafi'kog simbo!a pisje se prirodnim0ntar grafi'kog simbo!a pisje se prirodnim jezikom %i!i psedo jezikom %i!i psedo kodom& proces %operacija&kodom& proces %operacija&koj treba izvršiti.koj treba izvršiti.

Page 15: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 15/53

5rogramski dijagrami toka5rogramski dijagrami toka## grafi'ki simbo!igrafi'ki simbo!i ##

 – – sadr$i opis procesa %naredbsadr$i opis procesa %naredbaa& koje& kojesese izvršavaizvršava nad određenimnad određenim

a=b+c

## predstav!ja i!i !azn i!i iz!aznpredstav!ja i!i !azn i!i iz!aznnaredb kojim senaredb kojim se podaci nose podaci nose

kompjtersk memorij %!az& i!i izkompjtersk memorij %!az& i!i izkompjterske memorije prikazjkompjterske memorije prikazjna nekom spo!jnjemna nekom spo!jnjem ređajređaj

%iz!az&.%iz!az&.

b,c

a

Page 16: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 16/53

5rogramski dijagrami toka5rogramski dijagrami toka## grafi'ki simbo!igrafi'ki simbo!i ## – – predstav!ja proces donošenja od!ke.predstav!ja proces donošenja od!ke. Od!ka sadr$iOd!ka sadr$i

pitanje koje obi'no ima dva odgovora+ (3 i!ipitanje koje obi'no ima dva odgovora+ (3 i!i 87+87+pa se nakon tvrđivanja koji od ti) odgovora jepa se nakon tvrđivanja koji od ti) odgovora jeta'anta'an a!goritam nastav!ja jednom od dve mogćea!goritam nastav!ja jednom od dve mogćeptanje kojeptanje koje s!ede %iz!aze& iz ovog simbo!a.s!ede %iz!aze& iz ovog simbo!a.

a > b

 

 – – s!$i za povezivanje grafi'ki) simbo!a smers!$i za povezivanje grafi'ki) simbo!a smernji)og !ogi'ki skcesivnog izvršavanja.nji)og !ogi'ki skcesivnog izvršavanja.

 – – se koristi za ozna'avanje po'etka i krajase koristi za ozna'avanje po'etka i kraja a!goritma.a!goritma."imbo!"imbo! za start pokazje gde a!goritam zapo'injeza start pokazje gde a!goritam zapo'inje iiobi'no sadr$i re' C"tartF+ aobi'no sadr$i re' C"tartF+ a simbo!simbo! za kraj pokazjeza kraj pokazjegde segde se a!goritam završava i obi'no sadrći re'a!goritam završava i obi'no sadrći re'

 C-rajF. C-rajF.

start

 

Page 17: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 17/53

Page 18: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 18/53

"trktrno programiranje"trktrno programiranje "trktrno programiranje zasniva se na standardizaciji programske !ogike+"trktrno programiranje zasniva se na standardizaciji programske !ogike+

pa se komp!eksne !ogi'ke strktre razbijaj na e!ementarne !ogi'ke ce!inepa se komp!eksne !ogi'ke strktre razbijaj na e!ementarne !ogi'ke ce!ine%mod!e& i to po principima koji baziraj na !ogici razmiš!janja 'oveka.%mod!e& i to po principima koji baziraj na !ogici razmiš!janja 'oveka.-oncepti na bazi koji) se vrši dekompozicija na mod!e i obe!e$ja koja-oncepti na bazi koji) se vrši dekompozicija na mod!e i obe!e$ja kojamod!i moraj posedovati s identi'ni kao i kod metode mod!arnogmod!i moraj posedovati s identi'ni kao i kod metode mod!arnogprogramiranja.programiranja.

-ako metoda strktrnog programiranja obezbeđje preg!ednost+ jasnoć i-ako metoda strktrnog programiranja obezbeđje preg!ednost+ jasnoć i!akše odr$avanje programa+ izbegavaj se instrkcije grananja koje će!akše odr$avanje programa+ izbegavaj se instrkcije grananja koje ćeizvršavanje programa sa jednog mesta prebaciti na neko sasvim drgo %npr.izvršavanje programa sa jednog mesta prebaciti na neko sasvim drgo %npr.naredba GO 6O&. Ovakve instrkciji ina'e bitno sporavaj izvršavanjenaredba GO 6O&. Ovakve instrkciji ina'e bitno sporavaj izvršavanje

bazira na korišćenj neki) drgi) programski) instrkcija %1bazira na korišćenj neki) drgi) programski) instrkcija %1##64386438##7,"7+7,"7+(O(O##H41,7& koje obezbeđj standardizacij procedra grananja. a raz!ikH41,7& koje obezbeđj standardizacij procedra grananja. a raz!ikod metode mod!arnog programiranja koje koriste k!asi'ne b!ok dijagrame+od metode mod!arnog programiranja koje koriste k!asi'ne b!ok dijagrame+metoda strktrnog programiranja koristemetoda strktrnog programiranja koriste *)apinove *)apinove dijagrame.dijagrame.

Page 19: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 19/53

Objektno orjentisano programiranjeObjektno orjentisano programiranje

"trktrno"trktrno programiranjeprogramiranje bazira!obazira!o je je nana skpskp te)nikate)nika kojekoje ss sesekoristi!ekoristi!e zaza izradizrad programaprograma sasa jasnom jasnom ii !ako!ako razm!jivomrazm!jivomstrktrom+strktrom+ zz korišćenjekorišćenje podatakapodataka sasa jasno jasno definisanimdefinisanimstrktramastrktrama %nizovi+%nizovi+ zapisi+zapisi+ skpovi+skpovi+ datoteke&datoteke&.. -ako-ako ss vremenomvremenom

programiranjaprogramiranja nisnis viševiše dava!edava!e zadovo!javajćezadovo!javajće rez!taterez!tate..

*i!j*i!j:: "trktrnim"trktrnim programiranjemprogramiranjem te$imote$imo dada štošto rea!isti'nijerea!isti'nijepres!ikamopres!ikamo %mode!iramo+%mode!iramo+ sim!iramo&sim!iramo& nana ra'narra'nar ponašanjeponašanje nekognekog

sistemasistema..

EazvijenaEazvijena je je novanova metodametoda programiranjaprogramiranja – – objektnoobjektno orjentisanoorjentisanoprogramiranjeprogramiranje..

Page 20: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 20/53

Objektno orjentisano programiranjeObjektno orjentisano programiranje

ObjektnoObjektno orjentisanoorjentisano programiranjeprogramiranje omogćavaomogćava vernoverno pres!ikavanjepres!ikavanjerea!nogrea!nog sistemasistema ra'narskira'narski sistemsistem.. OvaOva metodametoda programiranjaprogramiranjaomogćićeomogćiće predstav!janjepredstav!janje rea!nogrea!nog sistemsistem kaokao skpskp međsobnomeđsobnopovezani)povezani) objekataobjekata.. 8a8a tajtaj na'inna'in sese ceoceo sistemsistem svodisvodi nana manjemanjece!inece!ine ko eko e međsobnomeđsobno komnicira komnicira aa korisnik korisnik mo$emo$e !akše!akše dada

sag!edasag!eda ii razmerazme takavtakav sistemsistem ii dada njimenjime !akše!akše prav!japrav!ja.. (ok (ok je je centrcentr strktrnogstrktrnog programiranjaprogramiranja ## strktrastrktra programa+programa+

centrcentr OO5OO5 je je objekatobjekat..

OsnovniOsnovni pojampojam objeknoobjekno orjentisanimorjentisanim programimaprogramima je je objekatobjekat kojikojipredstav!japredstav!ja entitetentitet iziz rea!nogrea!nog svetasveta.. ObjekatiObjekati mogmog bitibiti konkretnikonkretnientitetientiteti kaokao nana primerprimer !jdi+!jdi+ organizacije+organizacije+ predmetipredmeti %stdenti+%stdenti+ knjige+knjige+fak!teti&fak!teti& i!ii!i događajidogađaji %ispiti&%ispiti&..

Page 21: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 21/53

Metod apstrakcijeMetod apstrakcije

 Apstrakcija Apstrakcija je pojednostav!jena predstava nekog sistema+ kreirana je pojednostav!jena predstava nekog sistema+ kreiranatako da nag!asi za nas re!evantne karakteristike+ ignorišći sve namatako da nag!asi za nas re!evantne karakteristike+ ignorišći sve nama

.. Ona predstav!ja jedan od osnovni) me)anizama pomoć koji) seOna predstav!ja jedan od osnovni) me)anizama pomoć koji) se

!jdi bore sa komp!eksnim prob!emima.!jdi bore sa komp!eksnim prob!emima. -reirajći objekte program mi kreiramo jasno definisan-reirajći objekte program mi kreiramo jasno definisan

strktr+ a naš je zadatak da predstavimo nešto 'ije karakteristikestrktr+ a naš je zadatak da predstavimo nešto 'ije karakteristike

nis baš jasno definisane. bog toga apstra)jemo rea!an pojam inis baš jasno definisane. bog toga apstra)jemo rea!an pojam ipredstav!jamo ga objektom+ birajći samo one osobine tog objektapredstav!jamo ga objektom+ birajći samo one osobine tog objektakoje s nam potrebne.koje s nam potrebne.

Page 22: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 22/53

Objektno orjentisano programiranje:Objektno orjentisano programiranje:objektiobjekti

OsnovniOsnovni pojampojam objeknoobjekno orjentisanimorjentisanim programimaprogramima je je objekatobjekat kojikojipredstav!japredstav!ja entitetentitet iziz rea!nogrea!nog svetasveta.. ObjekatiObjekati mogmog bitibiti konkretnikonkretnientitetientiteti kaokao nana primerprimer !jdi+!jdi+ organizacije+organizacije+ predmetipredmeti %stdenti+%stdenti+ knjige+knjige+

-arakteristike-arakteristike objekataobjekata predstav!jenepredstav!jene ss prekopreko atribtaatribta ii metodametoda..  Atributi Atributi opisj objekat+ vrednosti atribta određj stanje objekta. 8a primer:opisj objekat+ vrednosti atribta određj stanje objekta. 8a primer:

serijski broj+ mode!+ boja i godina s samo neki od atrbta objekta atomobi!+ aserijski broj+ mode!+ boja i godina s samo neki od atrbta objekta atomobi!+ a jedno stanje tog objekta bi mog!o da bde M?DID?>+ Ope! -adet+ be!a+ AA. jedno stanje tog objekta bi mog!o da bde M?DID?>+ Ope! -adet+ be!a+ AA.

MetodiMetodi s procedre dode!jene objekt koje mog da menjaj stanje objektas procedre dode!jene objekt koje mog da menjaj stanje objekta%tj. mog da menjaj vrednosti atribta&.Objekti ntar programa moraj da%tj. mog da menjaj vrednosti atribta&.Objekti ntar programa moraj dasarađj. (a bi omogći!i koordinacij+ metodi prozrokj i porke %messages&sarađj. (a bi omogći!i koordinacij+ metodi prozrokj i porke %messages&koje ša!j drgim objektima. Ove porke mog da aktiviraj metode neki) drgi)koje ša!j drgim objektima. Ove porke mog da aktiviraj metode neki) drgi)objekata+ a tako aktivirani metodi da!je mog da izazov aktiviranje novi) akcijaobjekata+ a tako aktivirani metodi da!je mog da izazov aktiviranje novi) akcija

nekog s!edećeg objekta itd.nekog s!edećeg objekta itd.

Page 23: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 23/53

Osnovni principiOsnovni principi OO5: objektiOO5: objekti++ k!ase i nji)ovik!ase i nji)ovie!ementie!ementi

Osnovni pojam objekno orjentisanim programima je objekat kojiOsnovni pojam objekno orjentisanim programima je objekat kojipredstav!ja entitet iz rea!nog sveta. Objekati mog biti konkretni entiteti kaopredstav!ja entitet iz rea!nog sveta. Objekati mog biti konkretni entiteti kaona primer !jdi+ organizacije+ predmeti %stdenti+ knjige+ fak!teti& i!ina primer !jdi+ organizacije+ predmeti %stdenti+ knjige+ fak!teti& i!idogađaji %ispiti&.događaji %ispiti&.

-!asa je opšti predstavnik nekog skpa objekata %predmeta i!i pojava& koji-!asa je opšti predstavnik nekog skpa objekata %predmeta i!i pojava& kojiimaj ist strktr i ponašanje %npr. k!asa Osoba+ k!asa 3tomobi!+ ...&.imaj ist strktr i ponašanje %npr. k!asa Osoba+ k!asa 3tomobi!+ ...&.-!asa sadr$i opis odnosno definicij ovi) rea!ni) predmeta i pojava+-!asa sadr$i opis odnosno definicij ovi) rea!ni) predmeta i pojava+predstav!jajći tako nji)ov prošćen s!ik.predstav!jajći tako nji)ov prošćen s!ik.

-!asa ob)vata:-!asa ob)vata: karakteristike %atribte&karakteristike %atribte& ponašanje %metode&ponašanje %metode& odnose sa drgim k!asama %rea!cije&odnose sa drgim k!asama %rea!cije&

 3tribti+ metode i re!acije s e!ementi k!ase. 3tribti+ metode i re!acije s e!ementi k!ase.

Page 24: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 24/53

k!asa 3tomobi!k!asa 3tomobi! 306OMO/1, 306OMO/1,

markamarkamode!mode!

 

godina5roizvodnjegodina5roizvodnjeregistracijaregistracijapa!i%&pa!i%&

gasi%&gasi%&kreni%&kreni%&

stani%&stani%&

ara ter st e atr ut

ponašanja (metode)

Page 25: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 25/53

k!asa Osobak!asa Osoba

O"O/3O"O/31me1mer zr z

mati'ni/rojmati'ni/roj

Page 26: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 26/53

Ee!acijeEe!acije

 306OMO/1, 306OMO/1,markamarkam !m !

O"O/3O"O/31me1me

godina5roizvodnjegodina5roizvodnjeregistracijaregistracija

pa!i%&pa!i%&gasi%&gasi%&kreni%&kreni%&

stani%&stani%&

5rezime5rezimemati'ni/rojmati'ni/roj jeVlasnik

Page 27: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 27/53

Opšti ob!ik definicije k!ase 2aviOpšti ob!ik definicije k!ase 2aviClassClass NazivKlaseNazivKlase {{

//definicije at//definicije atributaributa

//definicije metoda//definicije metoda}}

(efinicija k!ase rezervisanom re'i(efinicija k!ase rezervisanom re'i ClassClass+ nakon 'ega ide naziv k!aseJ ovaj+ nakon 'ega ide naziv k!aseJ ovajdeo je zag!av!je k!asedeo je zag!av!je k!ase

 atribta i metodaatribta i metoda

(efinicija k!ase se završava zatvorenom viti'astom zagradom(efinicija k!ase se završava zatvorenom viti'astom zagradom

K napomena: 2ava je programski jezik koji pravi raz!ik izmeđ ma!i) i ve!iki)K napomena: 2ava je programski jezik koji pravi raz!ik izmeđ ma!i) i ve!iki)s!ova. 6o zna'i da će se nazivi k!asa+ atribta i metoda raz!ikovati s!ova. 6o zna'i da će se nazivi k!asa+ atribta i metoda raz!ikovati zavisnosti od ve!i'ine s!ova kojima s ispisani. 6ako se promenav!asnika+zavisnosti od ve!i'ine s!ova kojima s ispisani. 6ako se promenav!asnika+

promenaV!asnika i 5EOM783V,"381-3 tretiraj kao potpno raz!i'iti nazivi.promenaV!asnika i 5EOM783V,"381-3 tretiraj kao potpno raz!i'iti nazivi.

KK 8azivi ne smej da imaj nijedan b!anko znak KK 8azivi ne smej da imaj nijedan b!anko znak KKK 0 OO5 postoji nepisano pravi!o da se naziv k!ase piše ve!ikim s!ovom+ aKKK 0 OO5 postoji nepisano pravi!o da se naziv k!ase piše ve!ikim s!ovom+ a

ako se naziv sastoji od dve re'i onda se svaka re' piše ve!ikim s!ovom %npr.ako se naziv sastoji od dve re'i onda se svaka re' piše ve!ikim s!ovom %npr.

5os!ovni*entar&5os!ovni*entar&

Page 28: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 28/53

-omentari 2avi-omentari 2avi

 jedno!inijski komentari jedno!inijski komentarikratki komentari koji objašnjavaj i!i poma$kratki komentari koji objašnjavaj i!i poma$razmevanrazmevan ro ramsko kodaJro ramsko kodaJ

ozna'avaj se dp!om kosom crtom CLLFozna'avaj se dp!om kosom crtom CLLF više!inijski komentariviše!inijski komentarid$i komentari od neko!iko redovaJd$i komentari od neko!iko redovaJ

zapo'inj kosom crtom i zvezdom CLKF+ azapo'inj kosom crtom i zvezdom CLKF+ azavršavaj zvezdom i kosom crtom CKLF završavaj zvezdom i kosom crtom CKLF 

Page 29: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 29/53

 3tribti 3tribti  3tribti s karakteristike %osobine& k!as 3tribti s karakteristike %osobine& k!asee kojkojii se mogse mogizraziti ptem nekog broja+ s!ova i!i niza s!ovaizraziti ptem nekog broja+ s!ova i!i niza s!ova

Opšti ob!ik definicije atribta 2aviOpšti ob!ik definicije atribta 2avitip_podatkatip_podatka nazivAtributa;nazivAtributa;

6ip podatka predstav!ja skp mogći) vrednosti atribta6ip podatka predstav!ja skp mogći) vrednosti atribta%ceo broj+ rea!an broj+ broj+ s!ovo+ niz s!ova i!i nešto%ceo broj+ rea!an broj+ broj+ s!ovo+ niz s!ova i!i neštodrgo&drgo&

8aziv atribta se prema nepisanom pravi! piše ma!im8aziv atribta se prema nepisanom pravi! piše ma!ims!ovom osim kada se sastoji iz dve re'i kada se drgas!ovom osim kada se sastoji iz dve re'i kada se drgare' piše ve!ikim s!ovom %npr. godina5roizvodnje+re' piše ve!ikim s!ovom %npr. godina5roizvodnje+mati'ni/roj&mati'ni/roj&

(efinicija atribta se završava ta'ka(efinicija atribta se završava ta'ka##zarezom CJF zarezom CJF 

Page 30: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 30/53

8aj'ešće korišćeni tipovi podataka 2avi8aj'ešće korišćeni tipovi podataka 2avi8aziv tipa podatka8aziv tipa podatka opisopis primerprimer

intint ce!i brojevice!i brojevi 9+9+ ##==+ 9A.AAA==+ 9A.AAA

dob!edob!e rea!ni brojevirea!ni brojevi 99.;+ A.999.;+ A.9c)arc)ar znak %s!ovo+ cifra+ nekiznak %s!ovo+ cifra+ neki

drgi znak&drgi znak&  aaN N++  ==N N++  N N 

 

6ipovi podataka6ipovi podataka 5rosti5rosti "!o$eni %predstav!jaj se korišćenjem k!asaJ "tring i *a!endar s"!o$eni %predstav!jaj se korišćenjem k!asaJ "tring i *a!endar s

dve predefinisane 2ava k!ase&dve predefinisane 2ava k!ase&

!ong+ s)ort+ f!oat!ong+ s)ort+ f!oat

  ++

"tring"tring 8iz znakova8iz znakova CMi!anF+ C<=>F   CMi!anF+ C<=>F 

*a!endar*a!endar (atm i vreme(atm i vreme A9A9##A;A;##9= 9A:=A9= 9A:=A

Page 31: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 31/53

5rimer 9: 8apravi k!as atomat novca. Ova k!asa bi5rimer 9: 8apravi k!as atomat novca. Ova k!asa bitreba!o da ima samo atribt CstanjeF koji predstav!ja iznostreba!o da ima samo atribt CstanjeF koji predstav!ja iznosnovca koji se trentno na!azi atomat. -!asa nemanovca koji se trentno na!azi atomat. -!asa nemametode i o tome treba dati komentar jednoj !inijimetode i o tome treba dati komentar jednoj !iniji

ClassClass AutomatNovcaAutomatNovca {{

doubledouble stanje;stanje;

//ova klasa nema metode//ova klasa nema metode

}}

Page 32: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 32/53

5rimer 9: 8apravi k!as ra'nar. Ova k!asa bi treba!o da5rimer 9: 8apravi k!as ra'nar. Ova k!asa bi treba!o daima s!edeće atribte: takt procesora %rea!an broj npr. <.Aima s!edeće atribte: takt procesora %rea!an broj npr. <.AG)&+ radna memorija %rea!an broj npr. .A Gb&+ )ard diskG)&+ radna memorija %rea!an broj npr. .A Gb&+ )ard disk%ceo broj npr. 9A Gb&. -!asa nema metode i o tome treba%ceo broj npr. 9A Gb&. -!asa nema metode i o tome treba

dati komentar više !inija.dati komentar više !inija.

ClassClass RacunarRacunar {{

doubledouble taktProcesora;taktProcesora;

doubledouble radnaMemorija;radnaMemorija;

intint hardDisk;hardDisk;

/*ova klasa/*ova klasa

nema metode*/nema metode*/

}}

Page 33: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 33/53

(ode!jivanje po'etni) vrednosti atribta(ode!jivanje po'etni) vrednosti atribta

 3tribtima je mogće pri!ikom definisanja 3tribtima je mogće pri!ikom definisanjadode!iti podrazmevane+ po'etnedode!iti podrazmevane+ po'etnevrednostivrednosti

Opšti ob!ik definicije atribta i dode!jivanjaOpšti ob!ik definicije atribta i dode!jivanjapo'etni) vrednosti 2avipo'etni) vrednosti 2avi

tip_podatkatip_podatka nazivAtributa = vrednost;nazivAtributa = vrednost;

d id i

Page 34: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 34/53

adaciadaci

8apraviti k!as8apraviti k!as TelevizorTelevizor. Ova k!asa bi treba!o da ima:. Ova k!asa bi treba!o da ima:  3tribt 3tribt jačinaTona jačinaTona koji je ceo broj i ozna'ava trentn ja'in tona nakoji je ceo broj i ozna'ava trentn ja'in tona na

te!evizor. 5o'etna vrednost ovog atribta je A %ton je tišan do kraja&te!evizor. 5o'etna vrednost ovog atribta je A %ton je tišan do kraja&

 3tribt 3tribt trenutniProgramtrenutniProgram koji ozna'ava broj programa koji je trentnokoji ozna'ava broj programa koji je trentnona te!evizor %npr. k!j'en je program =&. 5o'etna vrednost ovogna te!evizor %npr. k!j'en je program =&. 5o'etna vrednost ovogatribta je 9.atribta je 9.

 3tribt 3tribt uključenuključen koji ozna'ava da !i je te!evizor k!j'en i!i nije %ako jekoji ozna'ava da !i je te!evizor k!j'en i!i nije %ako jek!j'en ima vrednost 6E07+ a ina'e ima vrednost 3,"7&. "matra sek!j'en ima vrednost 6E07+ a ina'e ima vrednost 3,"7&. "matra sea e na po e e ev zor s en.a e na po e e ev zor s en.

EešenjeEešenje

ClassClass TelevizorTelevizor {{intint jacinaTona = 0;jacinaTona = 0;

intint trenutniProgram = 1;trenutniProgram = 1;

 boolean boolean iskljucen =iskljucen = falsefalse;;

}}

d id i

Page 35: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 35/53

adaciadaci

8apraviti k!as8apraviti k!as RadioRadio. Ova k!asa bi treba!o da ima:. Ova k!asa bi treba!o da ima:  3tribt 3tribt fmrekvencijafmrekvencija koji ozna'ava trentn M radio frekvencijkoji ozna'ava trentn M radio frekvencij

koj radio pšta %npr. 9A. i!i D?.=&. 5o'etna vrednost ovog atribta jekoj radio pšta %npr. 9A. i!i D?.=&. 5o'etna vrednost ovog atribta jeD?.=.D?.=.

 3tribt 3tribt amrekvencijaamrekvencija koji ozna'ava trentn 3M radio frekvencijkoji ozna'ava trentn 3M radio frekvencijkoj radio pšta %npr. =>? i!i 9=AA&. 5o'etna vrednost ovog atribta jekoj radio pšta %npr. =>? i!i 9=AA&. 5o'etna vrednost ovog atribta je=>?.=>?.

 3tribt 3tribt bandband koji ima vrednost 3 ako radio pšta 3M frekvencij i!i koji ima vrednost 3 ako radio pšta 3M frekvencij i!i a o ra o p a re venc . o e na vre nos ovog a r a e .a o ra o p a re venc . o e na vre nos ovog a r a e .

EešenjeEešenje

ClassClass RadioRadio {{

doubledouble fmFrekvencija = 87.5;fmFrekvencija = 87.5;intint amFrekvencija = 567;amFrekvencija = 567;

charchar band =band = ‘‘FF’’;;

}}

d id i

Page 36: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 36/53

adaciadaci

8apraviti k!as8apraviti k!as !tudent!tudent. Ova k!asa bi treba!o da ima:. Ova k!asa bi treba!o da ima:  3tribt 3tribt ime"ime" 5o'etna vrednost ovog atribta je CnepoznatoF.5o'etna vrednost ovog atribta je CnepoznatoF.  3tribt 3tribt prezime"prezime" 5o'etna vrednost ovog atribta je CnepoznatoF.5o'etna vrednost ovog atribta je CnepoznatoF.  3tribt 3tribt polpol koji mo$e imati vrednost M i!i .koji mo$e imati vrednost M i!i .  3tribt 3tribt broj#ndeksabroj#ndeksa %niz s!ova&.%niz s!ova&.  3tribt 3tribt prosecna$cena"prosecna$cena"

EešenjeEešenje

ClassClass StudentStudent {{

sstringtring ime = “nepoznato”;ime = “nepoznato”;

sstringtring prezime = “nepoznato”;prezime = “nepoznato”;

charchar pol;pol;sstringtring brojIndeksa;brojIndeksa;

doubledouble prosecnaOcena;prosecnaOcena;

}}

Page 37: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 37/53

Odnos k!ase i objekataOdnos k!ase i objekata

Objekti predstav!jaj konkretan primerakObjekti predstav!jaj konkretan primerakodnosno pojav neke k!ase+ pa se k!asaodnosno pojav neke k!ase+ pa se k!asa

mo$e definisati kao skp objekata kojimo$e definisati kao skp objekata kojiimaj iste osobineimaj iste osobine

Page 38: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 38/53

Odnos k!ase i objekataOdnos k!ase i objekataAUTOMOBIL

markamodelgodinaProizvodnje

registracija

upali()ugasi()

kreni()

 3tomobi! predstav!ja k!as jer je to opšti nacrt neki) 3tomobi! predstav!ja k!as jer je to opšti nacrt neki)

karakteristika i ponašanja koje svaki atomobi! ima.karakteristika i ponašanja koje svaki atomobi! ima.  3ston Martin (/I sa godinom proizvodnje AAD i 3ston Martin (/I sa godinom proizvodnje AAD i

registracijom /G 9;registracijom /G 9;##<=> predstav!ja jedan konkretan<=> predstav!ja jedan konkretanprimerak atomobi!a tj. objekat k!ase atomobi!aprimerak atomobi!a tj. objekat k!ase atomobi!a

Odnos k!ase i objekataOdnos k!ase i objekata

Page 39: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 39/53

Odnos k!ase i objekataOdnos k!ase i objekataAUTOMOBIL

markamodelgodinaProizvodnje

registracija

upali()ugasi()

kreni()stani()

KLASA

a1:Automobil

marka = „Aston Martin“

model = „DB9“godinaProizvodnje = 2008registracija = „BG 123-456“

upali()ugasi()kreni()stani()

OBJEKTI

a2:Automobil

marka = „Jugo“

model = „Koral 55“godinaProizvodnje = 2000registracija = „BG 333-444“

upali()ugasi()kreni()stani()

a3:Automobil

marka = „Ford“

model = „Focus 1.6TDI“godinaProizvodnje = 2008registracija = „BG 120-406“

upali()ugasi()kreni()stani()

Page 40: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 40/53

(ek!aracija objekata 2avi(ek!aracija objekata 2avi

00 22avi se objekti dek!ariš na s!i'an na'inavi se objekti dek!ariš na s!i'an na'inkao i atribti k!asekao i atribti k!ase 5rvo se navodi naziv k!ase a onda naziv5rvo se navodi naziv k!ase a onda naziv

konkretnog objekta+ tako da se stvarakonkretnog objekta+ tako da se stvarapromen!jiva koja će da referencirapromen!jiva koja će da referencirakonkretan objekatkonkretan objekat

NazivKlase nazivobjekta;NazivKlase nazivobjekta;

Page 41: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 41/53

(ek!aracija objekata 2avi(ek!aracija objekata 2avi

Page 42: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 42/53

1nicija!izacija objekta1nicija!izacija objekta

(a bi objekat mogao da se koristi %da se(a bi objekat mogao da se koristi %da sepozivaj njegove metode+ menjaj vrednostipozivaj njegove metode+ menjaj vrednostiatribta itd.& potrebno ga je inicija!izovati.atribta itd.& potrebno ga je inicija!izovati.

 

 3ko se objekt pokša pristpiti bez 3ko se objekt pokša pristpiti bezinicija!izacije+ 2ava jav!ja grešk.inicija!izacije+ 2ava jav!ja grešk. 1nicija!izacija se vrši korišćenjem naredbe1nicija!izacija se vrši korišćenjem naredbe ne%ne%

nazivobjekta =nazivobjekta = newnew NazivKlase();NazivKlase();

Page 43: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 43/53

5rimer 95rimer 9 8apraviti k!as Motocik! koja ima:8apraviti k!as Motocik! koja ima:

 3tribt markaMode! 3tribt markaMode!  3tribt kbikaza %ceo broj& 3tribt kbikaza %ceo broj&

 

kreirakreira dva objekta k!ase Motocik!dva objekta k!ase Motocik!ClassClass MotociklMotocikl {{

String markaModel;String markaModel;intint kubikaza;kubikaza;

}}

Page 44: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 44/53

main main metodametoda

(a bi neki 2ava program mogao da se pokrene+(a bi neki 2ava program mogao da se pokrene+potrebno je da ima tzv.potrebno je da ima tzv. main main metodmetod ag!av!je ove metode je vek isto+ a njenaag!av!je ove metode je vek isto+ a njena

definicija se piše okvir te!a k!asedefinicija se piše okvir te!a k!ase public static void  public static void main (Stringmain (String [ ] args) {[ ] args) {

// naredbe ....// naredbe ....

}}

Page 45: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 45/53

5rimer 9: 8apravi k!as 6est koja sadr$i main5rimer 9: 8apravi k!as 6est koja sadr$i main

metodmetod koja kreirakoja kreira dva objekta k!ase Motocik!dva objekta k!ase Motocik!

ClassClass MotociklMotocikl {{

String markaModel;String markaModel;intint kubikaza;kubikaza;

}}

ClassClass TestTest {{ public static void  public static void main (Stringmain (String [ ] args) {[ ] args) {

Motocikl m1;Motocikl m1;

Motocikl m2;Motocikl m2;

m1 =m1 = newnew Motocikl ();Motocikl ();m2 =m2 = newnew Motocikl ();Motocikl ();

}}

}}

Page 46: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 46/53

 Vrednosti atribta objekta Vrednosti atribta objekta Objekat je pojav!jivanje k!ase koje imaObjekat je pojav!jivanje k!ase koje ima

konkretn vrednost atribtakonkretn vrednost atribta (a bi se vrednosti atribta promeni!e i!i pro'ita!e(a bi se vrednosti atribta promeni!e i!i pro'ita!e

potrebno im je pristpiti na određeni na'inpotrebno im je pristpiti na određeni na'in 5ristp atribtima objekta preko naziva objekta i5ristp atribtima objekta preko naziva objekta i

naziva atribtanaziva atribta

nazivobjekta.nazivAtributanazivobjekta.nazivAtributa

5repravite k!as 6est koja sadr$i main metod5repravite k!as 6est koja sadr$i main metod koja kreirakoja kreira dva objekata k!asedva objekata k!ase

Page 47: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 47/53

5repravite k!as 6est koja sadr$i main metod5repravite k!as 6est koja sadr$i main metod koja kreirakoja kreira dva objekata k!asedva objekata k!aseMotocik!. 5rvi bi treba!o da bde "zki G" od =AA kbika %dode!i atribtima prvogMotocik!. 5rvi bi treba!o da bde "zki G" od =AA kbika %dode!i atribtima prvogobjekta ove vrednosti&+ a drgi Pama)a E" od >AA kbika %dode!i atribtima drgogobjekta ove vrednosti&+ a drgi Pama)a E" od >AA kbika %dode!i atribtima drgog

objekta ove vrednosti&objekta ove vrednosti&

ClassClass MotociklMotocikl {{

String markaModel;String markaModel;

intint kubikaza;kubikaza;

}}

ClassClass TestTest {{

 public static void  public static void main (Stringmain (String [ ] args) {[ ] args) {

Motocikl m1;Motocikl m1;

Motocikl m2;Motocikl m2;

m1 =m1 = newnew Motocikl ();Motocikl ();

m2 =m2 = newnew Motocikl ();Motocikl ();

m1.markaModel = “Suzuki”;m1.markaModel = “Suzuki”;

m1.kubikaza = 500;m1.kubikaza = 500;

m2.markaModel = “Yamaha RS “;m2.markaModel = “Yamaha RS “;

m2.kubikaza = 600;m2.kubikaza = 600;

}}

}}

"tandardni iz!az"tandardni iz!azk d i i i j kk d i i i j k

Page 48: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 48/53

komanda za ispisivanje na ekrankomanda za ispisivanje na ekran

System.out.println (...neki tekst i/ili vrednost...)System.out.println (...neki tekst i/ili vrednost...)

Eez!tat izvršavanje ove komande je ispisEez!tat izvršavanje ove komande je ispissadr$aja koji se na!azi izmeđ zagrada isadr$aja koji se na!azi izmeđ zagrada i

pre!azak novi redpre!azak novi red 2edna od varijanti komande za ispisitvanje2edna od varijanti komande za ispisitvanje

na ekran jena ekran je printprint naredbaJ jedina raz!ikanaredbaJ jedina raz!ika

 je što će sve vrednosti pisati istom red je što će sve vrednosti pisati istom red

System.out.print (...neki tekst i/ili vrednost...)System.out.print (...neki tekst i/ili vrednost...)

Page 49: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 49/53

"tandardni iz!az"tandardni iz!azkomanda za ispisivanje na ekrankomanda za ispisivanje na ekran

"adr$aj zagradama mo$e da bde neki tekst+ vrednost nekog atribta i!i"adr$aj zagradama mo$e da bde neki tekst+ vrednost nekog atribta i!i

kombinacija ova dvakombinacija ova dva pr. 9pr. 9System.out.println (“Lep je dan”);System.out.println (“Lep je dan”);

// Ispisaće na ekranu:// Ispisaće na ekranu:

 Lep je danLep je dan

pr. pr. int broj;int broj;

broj = 12;broj = 12;

System.out.println (broj);System.out.println (broj);

// Ispisaće na ekranu:// Ispisaće na ekranu:

// 12// 12

pr. ;pr. ;int broj;int broj;broj = 12;broj = 12;

System.out.println (“Vrednost broja je: “+broj);System.out.println (“Vrednost broja je: “+broj);

// Ispisaće na ekranu:// Ispisaće na ekranu:

// Vrednost broja je: 12// Vrednost broja je: 12

Page 50: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 50/53

adatak adatak 

8apravite k!as8apravite k!as &rad&rad. Ova k!asa bi treba!o da ima:. Ova k!asa bi treba!o da ima:  3tribt 3tribt naziv"naziv" 5o'etna vrednost ovog atribta je CnepoznatF.5o'etna vrednost ovog atribta je CnepoznatF. 

 3tribt 3tribt broj!tanovnika"broj!tanovnika" 5o'etna vrednost ovog atribta je A.5o'etna vrednost ovog atribta je A.

8apravite k!as 6estGrad koja ima main metod i okvir8apravite k!as 6estGrad koja ima main metod i okvirnje kreira tri objekta k!ase grad: /eograd %.AAA.AAAnje kreira tri objekta k!ase grad: /eograd %.AAA.AAA

stanovnika&+ 8jjork %A.AAA.AAA stanovnika& i Vankverstanovnika&+ 8jjork %A.AAA.AAA stanovnika& i Vankver%nepoznat broj stanovnika%nepoznat broj stanovnika –– ne dode!jivati nikakvne dode!jivati nikakvvrednost&. 5otrebno je ispisati vrednosti atribta svi)vrednost&. 5otrebno je ispisati vrednosti atribta svi)objekata na ekranobjekata na ekran

ClassClass GradGrad {{

Page 51: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 51/53

StringString nanazziviv = “nepoznat”;= “nepoznat”;

intint brojStanovnika = 0;brojStanovnika = 0;

}}

ClassClass TestGradTestGrad {{

 public static void  public static void main (Stringmain (String [ ] args) {[ ] args) {

GradGrad g1;g1;

GradGrad g2;g2;

GradGrad g3;g3;

g1 =g1 = newnew GradGrad ();();

g2 =g2 = newnew GradGrad ();();

g3 =g3 = newnew GradGrad ();();

g1.g1.nanazziviv = “Beograd”;= “Beograd”;

g1.brojStanovnika =g1.brojStanovnika = AAAAAAJAAAAAAJ

g2.g2.nanazziviv = “Njujork“;= “Njujork“;

g2.brojStanovnika =g2.brojStanovnika = AAAAAAAJAAAAAAAJ

g3.g3.nanazziviv = “Vankuver“;= “Vankuver“;

System.out.println (g1.System.out.println (g1.nanazziviv););

System.out.println (g1.brojStanovnika);System.out.println (g1.brojStanovnika);

System.out.println (g2.System.out.println (g2.nanazziviv););System.out.println (g2.brojStanovnika);System.out.println (g2.brojStanovnika);

System.out.println (g3.System.out.println (g3.nanazziviv););

}}

}}

Page 52: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 52/53

adatak adatak  8apraviti k!as Osoba. Ova k!asa bi treba!o da ima8apraviti k!as Osoba. Ova k!asa bi treba!o da ima::

 3tribt 3tribt #mePrezime#mePrezime. 5o'etna vrednost ovog atribta je. 5o'etna vrednost ovog atribta je

 CnepoznatoF. CnepoznatoF.  3tribt 3tribt te'inate'ina. 6e$ina mo$e imati vrednost =>.= kg+ 9;.9 kg. 6e$ina mo$e imati vrednost =>.= kg+ 9;.9 kg

itd.itd.

8apraviti k!as 6estOsoba koja ima main metod i okvir8apraviti k!as 6estOsoba koja ima main metod i okvirnje kreira dva objekta k!ase Osoba: 5era 5erić %D9.> kg&nje kreira dva objekta k!ase Osoba: 5era 5erić %D9.> kg&i Mika Mikić %9AA.A kg&. 5rvo je potrebno ispisatii Mika Mikić %9AA.A kg&. 5rvo je potrebno ispisativrednosti ovi) atribta na ekran. 8akon toga ponovovrednosti ovi) atribta na ekran. 8akon toga ponovo

ispisati vrednosti ovi) atribta na ekran a!i tako da seispisati vrednosti ovi) atribta na ekran a!i tako da sez ispis vrednosti daje i propratni tekst %npr. C1me osobez ispis vrednosti daje i propratni tekst %npr. C1me osobe je:F i C6e$ina ove osobe je:F&. je:F i C6e$ina ove osobe je:F&.

ClassClass OsobaOsoba {{

String imePrezime = “nepoznato”;String imePrezime = “nepoznato”;

doubledouble tezina;tezina;

Page 53: 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

8/18/2019 2. Visi Programski Jezici - Metode Programiranja OOP [Compatibility Mode]

http://slidepdf.com/reader/full/2-visi-programski-jezici-metode-programiranja-oop-compatibility-mode 53/53

}}

ClassClass TestOsobaTestOsoba {{

 public static void  public static void main (Stringmain (String [ ] args) {[ ] args) {Osoba o1 =Osoba o1 = newnew GradGrad ();();

Osoba o2 =Osoba o2 = newnew GradGrad ();();

o1.imePrezime = “Pera Perić”;o1.imePrezime = “Pera Perić”;

o1.tezina =o1.tezina = D9.>JD9.>J

o2.imePrezime = “Mika Mikić“;o2.imePrezime = “Mika Mikić“;

o2.tezina =o2.tezina = 9AA.AJ9AA.AJ

System.out.println (o1.imePrezime);System.out.println (o1.imePrezime);

System.out.println (o1.tezina);System.out.println (o1.tezina);

System.out.println (o2.imePrezime);System.out.println (o2.imePrezime);

System.out.println (o2.tezina);System.out.println (o2.tezina);

System.out.println (“Ime osobe je: “+o1.imePrezime);System.out.println (“Ime osobe je: “+o1.imePrezime);

System.out.println (“Težina ove osobe je:”+o1.tezina);System.out.println (“Težina ove osobe je:”+o1.tezina);

System.out.println (“Ime osobe je: “+o2.imePrezime);System.out.println (“Ime osobe je: “+o2.imePrezime);

System.out.println (“Težina ove osobe je:”+ o2.tezina);System.out.println (“Težina ove osobe je:”+ o2.tezina);

}}

}}