Download as pdf or txt
Download as pdf or txt
You are on page 1of 90

VELEUILITE U RIJECI

OBJEKTNO ORIJENTIRANE TEHNOLOGIJE I


Vjebe
Vlatka Davidovi, prof.
mr. sc. Ivan o!ar"i
#$%%.
Vlatka Davidovi/Ivan Pogari
&'JE(T)& &RIJE)TIR*)E TE+)&L&,IJE I
Nakladnik: V-l-."ili/t- . Ri0-ci
Za nakladnika: dr.sc. D./an R.di
Lektorirano: 1t.dio T I 2, Ri0-ka
Recenzenti:
Doc.dr.sc. atri3ia o/"i
&d0-l 3a informatik. 1v-."ili/ta . Ri0-ci
Dr.sc. *l-n Jak.povi
V-l-."ili/t- . Ri0-ci
Tisak: V-l-."ili/t- . Ri0-ci, Ri0-ka
Naklada: 4$ kom
1kripta Objektno orijentirane tehnologije I int-l-kt.alno 0- vlasni/tvo,
n-ot.5ivo, 3akonom 3a/ti-no i mora s- po/tivati. )i0-dan dio ov- skript-
n- smi0- s- pr-slikavati ni .mno6avati na 7ilo ko0i na"in
7-3 napisano!a dop./t-n0a a.tora.
V-l-."ili/t- . Ri0-ci .vrstilo 0- ova0 .d67-nik . v-l-."ili/n- .d67-nik-
8(lasa9 $$4:%%;%%:$%;$4, Ur. 7ro09 #%<$:=<:$%:%%:%#>.
CIP - Katalogizacija u publikaciji
S V E U I L I N A K N J I N I C A R I J E K A
UK !!"#"$#!"%&!'%#()&!'*)
AVI+VI,- Vlatka
+bj.kt/o o0ij./ti0a/. t.1/ologij. I 2 3j.4b. 5 Vlatka
a3i6o3i7- I3a/ Poga08i7# - Rij.ka 2 V.l.u8ili9t. u Rij.ci-
$!::# - &U64b./ici V.l.u8ili9ta u Rij.ci ;
<a/ualia Coll.giu= Polit.c1/ic >lu=i/./?i?)
@ibliog0aAija#
IS@N B'(-B%C-*B::-*C-B
:# Poga08i7- I3a/
:$!B!B!BC
Sadraj
%. Upo3navan0- s osnovnim po0movima o70-ktno! pro!ramiran0a.........................?
%.%. (lasa.........................................................................................................?
%.#. &70-kt.......................................................................................................<
%.4. (r-iran0- klas-...........................................................................................<
%.@. (ompiliran0- pro!rama..............................................................................A
%.=. I3vr/avan0- pro!rama.................................................................................B
%.?. isan0- kom-ntara.....................................................................................B
%.<. Vari0a7l-, pol0a, atri7.ti, stan0a...............................................................%$
%.A. (r-iran0- o70-kata...................................................................................%$
%.B. 2-tod-.....................................................................................................%%
%.B.%. I3vr/na m-toda.................................................................................%%
%.B.#. (r-iran0- m-toda...............................................................................%4
%.B.4. o3ivi m-toda....................................................................................%@
%.B.@. rosl0-5ivan0- param-tara m-todi.....................................................%?
%.B.=. ripadnost m-tod- klasi ili o70-kt....................................................%<
%.B.?. ovratni tip m-tod-...........................................................................%A
%.B.<. r-klapan0- m-toda..........................................................................%B
#. Tipovi podataka . Javi...................................................................................##
#.%. rimitivni tipovi podataka........................................................................##
#.#. 1lo6-ni tipovi podataka ...........................................................................#4
#.4. 1trin!......................................................................................................#@
#.@. (onv-r3i0a primitivniC tipova podataka....................................................#=
#.@.%. *.tomatska......................................................................................#=
#.@.#. )-a.tomatska 8tDp- castin!>.............................................................#<
#.=. &p-ratori.................................................................................................#A
#.=.%. *ritm-ti"ki op-ratori.........................................................................#A
#.=.#. &p-ratori nad 7itovima.....................................................................#B
#.=.4. &p-ratori .spor-d7-.........................................................................4$
#.=.@. Lo!i"ki op-ratori...............................................................................4$
#.?. Vari0a7l-..................................................................................................4%
#.<. odr."0- va6-n0a vari0a7li 8scop->.............................................................4<
4. (onstr.ktori...................................................................................................4A
4.%. (r-iran0- konstr.ktora............................................................................4A
4.#. o3ivi konstr.ktora..................................................................................@$
4.4. (l0."na ri0-" tCis.....................................................................................@#
@. akiran0- klasa...............................................................................................@=
=. .van0- o70-kata............................................................................................@A
=.%. )i3ovi.......................................................................................................@A
=.#. (ont-0n-ri................................................................................................=%
=.#.%. 0ava..til.V-ctor .................................................................................=#
=.#.#. 0ava..til.*rraDList ............................................................................=@
=.#.4. 0ava..til.+asC1-t .............................................................................==
=.#.@. 0ava..til.+asC2ap.............................................................................=<
?. (ontrola pro!ramsko! ti0-ka...........................................................................=B
?.%. Uv0-ti.......................................................................................................=B
?.#. ,ranan0a.................................................................................................=B
?.4. -tl0-.......................................................................................................?4
: 4 :
<. I3nimk- i Cvatan0- i3nimki..............................................................................??
A. 2odifikatori prist.pa......................................................................................<$
A.%. 1-tt-ri i !-tt-ri.........................................................................................<$
B. &dnosi i3m-5. klasa......................................................................................<4
B.%. *soci0aci0a...............................................................................................<=
B.#. *!r-!aci0a i kompo3ici0a...........................................................................A$
B.4. )asl0-5ivan0-..........................................................................................A=
B.4.%. &p-rator s.p-r..................................................................................A<
Lit-rat.ra9.........................................................................................................B$
: @ :
redgo!or
1kripta i3 kol-!i0a E&70-ktno ori0-ntiran- t-Cnolo!i0- IE napravl0-na 0- pr:
v-nstv-no s cil0-m da s- st.d-ntima 1tr."no! st.di0a informatik- olak/a .po3na:
van0- s osnovama o70-ktno ori0-ntirano! prist.pa.
&va 0- skripta podi0-l0-na na d-v-t c0-lina. 1vaka c0-lina 0- .potp.n0-na
prim0-rima t- prakti"nim 3adacima. rvi s- dio odnosi na .po3navan0- s osnov:
nim po0movima o70-ktno! pro!ramiran0a kao /to s. o70-kti, klas- i m-tod-. U
dr.!om s- di0-l. da0- pr-!l-d tipova podataka 3a0-dno s op-ratorima i vari0a7la:
ma. U tr--m di0-l. o7ra5.0- s- po0am konstr.ktora t- s- o70a/n0ava na"in i ra3:
lo! kori/t-n0a. -tvrti dio pokriva pakiran0- i kori/t-n0- klasa i3 dr.!iC pak-ta.
-ti dio s- odnosi na ".van0- o70-kata pr-ko ni3ova i kont-0n-ra. (ontrola pro:
!ramsko! ti0-ka, !ranan0a i p-tl0- dani s. . /-stom po!lavl0.. 1-dmi dio pokriva
i3nimk- i Cvatan0- i3nimki . sl."a0. n-pr-dvi5-niC okolnosti prilikom kori/t-n0a
pro!rama. (ratak osmi dio odnosi s- na modifikator- prist.pa. U d-v-tom 0- di0-:
l. prika3an odnos i3m-5. dvi0. ili vi/- klasa v-3ama asoci0aci0-, a!r-!aci0- i kom:
po3ici0-.
Di0a!rami ko0i s- korist- . skripti pripada0. U2L:. 8Unifi-d 2od-lin! Lan:
!.a!->, 0-3ik. 3a o70-ktno ori0-ntirano mod-liran0-. )av-d-nim o3nakama prika:
3an- s. klas-, o70-kti t- odnosi m-5. n0ima.
&va0 nastavni mat-ri0al nami0-n0-n 0- st.d-ntima kao osnovna lit-rat.ra .
okvir. kol-!i0a E&70-ktno ori0-ntiran- t-Cnolo!i0- IE. rim0-ri i 3adaci prila!o5-ni
s. po"-tno0 ra3ini 3nan0a i3 nav-d-no! podr."0a t- iC st.d-nti mo!. koristiti 3a
samostalan rad.
Ri0-ka, o6.0ak #$%$.
*.tori
: = :
"# $%o&na!anje ' o'no!ni( %oj(o!i(a objektnog
%rogra(iranja
"#"# Kla'a
1v- /to nas okr.6.0-, pr-dm-t- i po0av-, od ro5-n0a nasto0imo kat-!ori3irati. 1v-
pr-dm-t- i po0av- ko0- .o"avamo, sv0-sno ili n-sv0-sno, sm0-/tamo . Ek.ti0ic-E
odr-5-no! na3iva. r-dm-ti . tim Ek.ti0icamaE ima0. 3a0-dni"ka svo0stva.
Tako mo6-mo napraviti kat-!ori0-9 a.tomo7il, ki/o7ran, stol, toplo vri0-m-, ra3n-
kat-!ori0- l0.di itd.
(ad nai5-mo na 7ilo ko0i novi pr-dm-t ili po0av., odmaC iC pok./avamo svrstati
. odr-5-n. kat-!ori0.. r-dm-ti i po0av- . n-ko0 kat-!ori0i ima0. odr-5-na 3a0-d:
ni"ka svo0stva 3aCval0.0.i ko0ima sm0-/tamo nov- pr-dm-t- i po0av-.
Vidimo n-k. !ra5-vin. i odmaC 0- sm0-/tamo . kat-!ori0. !ra5-vina, mo6da .
potkat-!ori0. 3!rada ili k.a.
Uo"imo ptic. ko0. odmaC sm0-/tamo . kat-!ori0. ptica, potkat-!ori0. !al-7, vra:
na, patka ili n-po3nata ptica. 1m0-/tan0- . kat-!ori0- nam 0- potr-7no 0-r na ta0
na"in 3namo svo0stva ono!a /to smo .o"ili t- pok./avamo pr-dvid0-ti odr-5-no
pona/an0-. U /.mi vidimo 0-dink. i3 kat-!ori0- m-dv0-d, a s o73irom da s. m-d:
v0-di d-finirani i kao opasni, 3namo da 7ismo s- tr-7ali skloniti.
(ad radimo pr-slik. r-alno! svi0-ta . ra".nalni pro!ram na objektan na"in, pr:
v-nstv-no radimo s nav-d-nim kat-!ori0ama ko0- na3ivamo kla'e.
(lasa d-finira pr-dlo6ak ko0-m s- opis.0. 3a0-dni"ka svo0stva svim 0-dinkama
proi3a/lima i3 nav-d-n- klas-.
(lasa ov0-k odnosi s- op-nito na 7ilo ko0-! pripadnika l0.dsk- vrst-. (lasa 1.:
s0-d odnosi s- na sv- 0-dink- klas- ov0-k ko0- 6iv- . na/o0 7li3ini. (lasa Do7ar:
1.s0-d 7ila 7i potklasa sviC 0-dinki klas- 1.s0-d s ko0ima smo do7ri i s ko0ima di:
0-limo n-k- stvari.
(od kr-iran0a klasa nis. nam 7itna sva svo0stva. Tra6imo samo ona r-l-vantna.
(ad kr-iramo klas. 2o7it-l, .koliko s- radi o klasi ko0a - tr-7ati mo7ilnom op-:
rat-r. kod ko0-! smo .3-li pr-tplat., onda - s- 3a nav-d-n. klas. 7il0-6iti svo0:
stva pop.t 7ro0a t-l-fona, s-ri0sko! 7ro0a, mark-, do7avl0a"a, ovla/t-no! s-rvisa
itd.
Ukoliko s- radi o klasi 2o7it-l ko0. d-finiramo 3a o7i"no! korisnika ko0i - ".vati
podatk- o 7ro0-vima t-l-fona t- im-nima i pr-3im-nima oso7a, onda s-ri0ski 7ro0
po0-diniC mo7it-la n-- 7iti r-l-vantan podatak i t. !a n--mo .7acivati.
To 3na"i da -mo 3a klas- d-finirati samo odr-5-na 7itna svo0stva i pona/an0a.
(las- s. pr-dlo/ci pr-ma ko0ima kr-iramo o70-kt-.
: ? :
"#)# Objekt
&70-kt 8ili instanca klas-> 0- konkr-ti3aci0a klas-. &70-kti s- kr-ira0. pr-ma pr-d:
lo/k. n-k- klas-. Ukoliko klasa ima odr-5-na svo0stva, onda i o70-kti t- klas-
ima0. ta ista svo0stva.
1vaki o70-kt nav-d-n- klas- ima svo0a stan0a.
*ko npr. 3a klas. ov0-k d-finiramo svo0stva 8atri7.t-> visin- i t-6in-, onda - 0-:
dan o70-kt na3van "ov0-k% imati, na prim0-r, stan0-9
visina F %A$, t-6ina F <@,
a n-ki dr.!i o70-kt "ov0-k# imat - stan0-9
visina F %<A, t-6ina F A%.
)-ki novi o70-kt klas- ov0-k tako5-r 7i imao svo0- stan0-.
r-ma (la0i. G(la0i, %BAA., B?%H o70-kt 8lat. o70-ct.m> 0- pr-dm-t ko0i sa"in0ava
dio van0sko! mat-ri0alno! svi0-taI pr-dm-t spo3na0- i d0-latnosti s.70-ktaI po0ava
/to posto0i n-3avisno od na/- svi0-sti.
EU o70-ktno ori0-ntiranom pro!ramiran0., instanca podatkovn- str.kt.r- i pona:
/an0a d-finirana 0- klasom o70-kta. 1vaki o70-kt ima svo0- vri0-dnosti 3a vari0a7l-
instanc- svo0- klas- i mo6- od!ovoriti m-todama ko0- s. d-finiran- n0-!ovom kla:
som. )pr. o70-kt klas- EointE mo6- imati vari0a7l- instanci EJE i EDE i mo6- od!o:
voriti EplotE m-todi crtan0-m to"k- na -kran na tim koordinatama.E GD-nis +oK-,
The Free n!line Dictionar" o# $o%&'ting( )*+*H
"#*# Kreiranje kla'e
class Krug {
}
Ri0-" +la'' o3na"ava da s- radi o klasi. (lasa 0- na3iva Kr,g.
Ti0-lo klas- 0- om-5-no 3a!radama LM ko0- o3na"ava0. po"-tak i 3avr/-tak klas-.
)ikakav s- kod n- 7i tr-7ao pisati i3a 3avr/-tka klas-.
U ti0-l. klas- d-klarira0. s- vari0a7l- t- pi/. m-tod-.
,lika +: Prikaz klase ' -.L
notaci/i
&va s- klasa spr-ma . datot-k. pod im-nom Kr,g#ja!a.
Na&i! kla'e mora od!ovarati na&i!, datoteke 7-3 -kst-n3i0-.
: < :
Ukoliko 0- sl."a0no spr-mimo pod na3ivom kr,g#ja!a, na3iv klas- n-- od!ovarati
na3iv. pro!rama t- - s- 0aviti !r-/ka. Java 0- os0-tl0iva na v-lika i mala slova pa
tr-7a pripa3iti na pisan0- na3iva.
class Krug {

public static void main(String args[]) {
}
}
public static void main(String args[]) 0- d-klaraci0a !lavn- m-tod-
%
. klasi.
"#-# Ko(%iliranje %rogra(a
Datot-ka s- kompilira Java pr-vodit-l0-m ja!a+8.-J-> ko0i dola3i . standardnom
JD( 8Java D-v-lopm-nt (it> pak-t..
# javac Krug.java
Ra3vo0nim alatima lak/- s- mo6- prist.piti kompilator..
(ompiliran0-m klas- do7iva s- datot-ka . t3v. 7Dt-cod-. na3iva (r.!.class.
)av-d-n. datot-k. mo6-mo i3vr/iti Javinim int-rpr-t-rom9
# java Krug
(od i3vr/avan0a pro!rama (r.! n- .pis.0- s- -kst-n3i0a.
#
1 o73irom da s- klasa n- mora nala3iti . istom dir-ktori0. odakl- 0- i pok./ava:
mo i3vr/iti, onda koristimo dodatn. opci0. classpath putanja_do_klase.
ri(jer.
(lasa s- nala3i . dir-ktori0. 8mapi>9
C:\java_vjezbe\vjezba_1\Krug.java
(ompiliramo 0- na na"in9
# javac C:\java_vjezbe\vjezba_1\Krug.java
%
& m-todama - 7iti ri0-"i . sl0-d--m po!lavl0.
#
& pakiran0. klasa - 7iti ri0-"i . po!lavl0. @
: A :
Do7ivamo datot-k.9
C:\java_vjezbe\vjezba_1\Krug.class
(od i3vr/avan0a koristimo nar-d7.9
# java classpath C:\java_vjezbe\vjezba_1 Krug
/adatak.
+0 1reira/te klas' 1r'g i s&re%ite /e ' datotek' 1r'g0/ava 2'koliko radite neki% ra!
zvo/ni% alato%( onda ete a'to%atski do3iti o&ci/' s&re%an/a klase ' istoi%en' da!
totek'40 1las' ko%&ilira/te i izvr5ite0
"#0# I&!r1a!anje %rogra(a
I3vr/avan0-m pro!rama Java int-rpr-t-rom pokr-- s- JV2 8Java Virt.al 2acCi:
n-> i ."itava0. standardni *I:0i t- s- 3a i3vr/avan0- klas- (r.! osi!.rava m0-sto
. m-mori0i.
"#2# i'anje ko(entara
(om-ntari . kod. mo!. 7iti9
vi/-lini0ski
o"in0. 3nakom ;N, a 3avr/ava0. 3nakom N; 3a sm0-/tan0- vi/- lini0a t-ksta.
rim0-r9
/* Ovo je vielinijski komentar i
moe smjestiti ve!u koli"inu teksta */
0-dnolini0ski
o"in0- 3nakom ;;, a i3a to! 3naka t-kst do kra0a r-da smatra s- kom-nta:
rom.
rim0-r9
int a # $% // inicijali&acija varijable a
3a !-n-riran0- dok.m-ntaci0-
o"in0. 3nakom ;NN, a 3avr/ava0. 3nakom N; t- .n.tra id- sav t-kst ko0i 6-:
limo do7iti .n.tar dok.m-ntaci0-. Dok.m-ntaci0a s- !-n-rira pro!ramom
ja!ado+.
: B :
rim0-r9
/** komentar koji ide u dokumentaciju */
(om-ntari 3a !-n-riran0- dok.m-ntaci0- sadr6- i +T2L o3nak- t- o3nak-
kao /to s.9 Oa.tCor, Ov-rsion, Oparam, Or-t.rn...
"#3# Varijable4 %olja4 atrib,ti4 'tanja
U Javi s- "-sto korist- ovi sinonimi 3a opisivan0- .!lavnom istiC po0mova, a ovis:
no o tr-n.tk. . ko0-m s- korist-.
o0am !arijabla odnosi s- op-nito na sv- vari0a7l-9 7ilo da iC d-klariramo .n.:
tar klas- ili .n.tar po0-din- m-tod-. Ukoliko s. d-klariran- .n.tar klas-, !ovori:
mo 0o/ i o !arijabla(a objekta, odnosno %olji(a.
Stanje odr-5-no! o70-kta opisano 0- vri0-dnostima ko0- s- nala3- . nav-d-nim
vari0a7lama o70-kta.
Ukoliko s. vari0a7l- d-klariran- .n.tar po0-din- m-tod-, !ovorimo o %ara(etri5
(a 8kada s- pi/. . 8> 3a!radama>, odnosno lokalni( !arijabla(a.
S!oj't!a ili atrib,ti s. sinonimi ko0i s- vi/- korist- .!lavnom kod opisivan0a
sam- klas-.
"#6# Kreiranje objekata
&70-kti s- kr-ira0. pr-ma pr-dlo/k. odr-5-n- klas-.
1oftv-rski o70-kti s. sli"ni stvarnim o70-ktima, odnosno pr-slikava0. stvarn-
o70-kt- i n0iCov- karakt-ristik-9 r-alni o70-kti ima0. 'tanje i %ona1anje pa s- na
ta0 na"in !rad- i softv-rski o70-kti.
Stanje 7i s- opisivalo 3a0-dni"kim karakt-ristikama. )a prim0-r, .koliko klasa
ov0-k d-finira svo0stva 8atri7.t->9 im-, pr-3im-, spol, visina, t-6ina, dat.m ro5-:
n0a, onda svi pripadnici 8instanc-, o70-kti> klas- ov0-k ima0. stan0- opisano vri:
0-dnostima ko0- s- prida0. vari0a7lama9 im-, pr-3im-, spol, visina, t-6ina, dat.m
ro5-n0a.
S!aki objekt 7,!a '!oje 'tanje#
ona1anje, 3a ra3lik. od stan0a, opisano 0- !la!olima. ona/an0- da0- opis ono!a
/to o70-kt radi. )a prim0-r, "ov0-k Coda, !ovori, misli...
(od pr-vo5-n0a stvarno! svi0-ta . softv-rski svi0-t, pri d-finiran0. klas- proma:
tra0. s- i .3ima0. samo r-l-vantna stan0a i pona/an0a.
&70-kti pri tom- sm0-/ta0. svo0a 'tanja . !arijable, a svo0a %ona1anja i3la6. .
(etoda(a. U proc-d.ralnim pro!ramskim 0-3icima m-tod- s. d-finiran- kao
proc-d.r- i f.nkci0-.
1amo kr-iran0- o70-kata id- pr-ko kl0."n- ri0-"i ne89
'rug krug( # new 'rug()%
: %$ :
&70-kt 0- na3iva kr.!% i pripada klasi (r.!, odnosno ima sva svo0stva klas-
(r.!.
4

(od kr-iran0a dr.!o! o70-kta, .koliko . i3vo5-n0. pro!rama v- posto0i o70-kt
na3iva kr.!%, 0avit - s- !r-/ka o posto0an0. o70-kta id-nti"no! na3iva.
(las. (r.! mo6-mo modificirati tako da . n0-3ino0 !lavno0 m-todi kr-iramo dva
o70-kta klas- (r.!9
class Krug {
public static void main(String args[]) {
'rug krug1 # ne) 'rug()%
'rug krug2 # ne) 'rug()%
}
}
(od i3vr/avan0a ovo! pro!rama kr-irat - s- dva o70-kta klas- (r.!9 kr.!% i
kr.!#.
/ada+i.
+0 1reira/te klas' Pas0 ,&re%ite datotek' &od nazivo% Pas0/ava0 - klasi Pas kreira/!
te glavn' %etod'0 1reira/te tri o3/ekta klase Pas naziva: dora( snoo&" i &as0 1o%&i!
lira/te i izvr5ite &rogra% te &rov/erite gre5ke0
)0 Na isti nain kao ' &rvo% zadatk' kreira/te klas' 1otac te dva o3/ekta te klase is!
tog naziva0 1o%&ilira/te &rogra% i &rov/erite ko/e se gre5ke /avl/a/' i za5to0
60 Pok'5a/te nai 3are% /o5 tri %og'a ti&a gre5ki ko/e se %og' /aviti kod kreiran/a
klase 2na &ri%/er ' &rvo% zadatk'40 Navedite ' ko/i% s' se sit'aci/a%a /avile gre5ke
i na ko/i nain ih se %o7e re&rod'cirati0
"#9# :etode
"#9#"# I&!r1na (etoda
I3vr/na m-toda na3iva main8> 0- m-toda .n.tar klas- ko0. Javin int-rpr-t-r tra6i
kod 7ilo ko0-! pokr-tan0a pro!rama. Ukoliko Javina klasa ima (ain;< m-tod., 3a
klas. ka6-mo da 0- i3vr/na.
public class *est {
public static void main(String[] args) {
S+stem,out,println(-.spis i& i&vrne metode-)%
}
4
U ovom sl."a0. (r.! 0- nova klasa ko0o0 0o/ nismo d-finirali vari0a7l- i m-tod-.
: %% :
}
I3vr/na klasa 0- klasa ko0a s- mo6- i3vr/iti po3ivom pr-ko Javina int-rpr-t-ra. )a:
v-d-ni prim0-r mo6-t- pokr-n.ti pr-ko alata 8po3ivom R.n> ili i3 .pravl0a"k- lini:
0-9
java classpath putanja_do_navedene_datoteke Test
rilikom i3vr/avan0a, na nav-d-no0 lokaci0i tra6i s- datot-ka na3iva T-st.class t-
main8> m-toda . to0 klasi. Ukoliko m-toda ni0- na5-na, 0avl0a s- !r-/ka9
Ecept!on !n thread "#a!n$ java.lang.%o&uch'ethodError: #a!n
)av-d-na main() m-toda 0- .la3na to"ka kod i3vr/avan0a pro!rama.
U i3radi n-k- Javin- aplikaci0- .o7i"a0-no 0- da posto0i samo 0-dna klasa s ovom
m-todom. &stal- s- klas- po potr-7i po3iva0. i3 nav-d-n- !lavn- m-tod-. &n- n-
mora0. imati nav-d-n. m-tod. pa samim tim- nis. i3vr/n- klas-.
Ri0-" public o3na"ava da 0- m-toda 0avna, t0. svima dost.pna.
Ri0-" static o3na"ava stati"k. m-tod., odnosno pripadnost m-tod- klasi.
Ri0-" void o3na"ava povratni tip, odnosno da m-toda n- vraa nikakv. vri0-dnost.
Ri0-" main 0- na3iv m-tod-. &va !lavna m-toda mora imati to im-.
Argumenti, odnosno param-tri ko0i s- prosl0-5.0. m-todi nala3- s- .n.tar 8> 3a:
!rada. U3 svaki param-tar pi/- s- tip param-tra 8vari0a7l-> i na3iv. *r!.m-nti s.
m-5.so7no odvo0-ni 3ar-3ima.
U main m-todi 1trin! ar!sGH 0- ni3 param-tara ko0i s- pr-.3ima0. i3 .pravl0a"k- li:
ni0-.
/ada+i.
+0 1reira/te klas' Test kao ' navedeno% &ri%/er' te /e s&re%ite ' odgovara/'' da!
totek' 2Test0/ava40 1o%&ilira/te /e i izvr5ite &reko razvo/nog alata0 Pro%otrite is&is0 Iz!
vr5ite &rogra% i iz '&ravl/ake lini/e0
)0 1reira/te klas' Test):
public class *est/ {
void ispis() {
S+stem,out,println(-.spis i& bilo koje metode-)%
}
}
: %# :
60 Ponovite &ost'&ak iz &rethodnog zadatka i za ov' klas'0 Pro%otrite &or'ke ko/e
se &o/avl/'/'0
80 - klasi Test) doda/te %ain24 %etod'0 Ponovo ko%&ilira/te i izvr5ite klas'0 Pro%o!
trite rez'ltat0
"#9#)# Kreiranje (etoda
)a3ivi m-toda s. o7i"no opisni9
void ispisi0odatke() {
S+stem,out,println(1.spisujem podatke,,,2)%
}
2-toda na3iva ispisi0odatke() n- priCvaa niti 0-dan param-tar.
Ti0-lo m-tod- 0- odvo0-no viti"astim 3a!radama {} i .n.tar n0-!a s- pi/. nar-d7-
odvo0-n- 3nakom ;
)ar-d7a S+stem,out,println() radi ispis na standardnom i3la3.. U ovom
sl."a0. r-3.ltat nar-d7- - 7iti9

(sp!suje# podatke)
1v- m-tod- sasto0- s- od sl0-d-iC -l-m-nata9
modifikator prist.pa 8opcionalan>
povratni tip 8o7av-3an>
na3iv m-tod- 8o7av-3an>
param-tri 8opcionalni>
ti0-lo m-tod- 8opcionalno>.
2odifikator prist.pa P &'3lic( &rotected( &rivate o3na"ava tko sv- mo6- i pod ko0im
.v0-tima prist.piti nav-d-no0 m-todi.
ovratni tip P o7i"no s- pi/- tip podatka ko0i m-toda vraa. Ukoliko n- vraa ni:
/ta, o7av-3no s- stavl0a void.
)a3iv m-tod- P opisan 0-. Uo7i"a0-no 0- postaviti !la!ol s o73irom da m-toda o3:
na"ava n-k. radn0., odnosno n0om- s- opis.0- pona/an0- ko0- - o70-kt po3vati
. n-kom tr-n.tk..
: %4 :
aram-tri P navod- s- .n.tar okr.!liC 3a!rada .koliko posto0-I . s.protnom os:
ta0. samo o7av-3n- okr.!l- 3a!rad-.
Ti0-lo m-tod- P po"in0- i 3avr/ava viti"astim 3a!radama LM. &n- s. o7av-3n-, a
.n.tar to! ti0-la s- mo!. i n- mora0. pisati nar-d7-.
rim0-r 0- kr-irana klasa (n0i!a ko0a ima m-tod. ispis'njige(). 2-toda ima
0-dan param-tar9 param-tar 0- na3iva naslov, a tip to! param-tra 0- 1trin!9
public class 'njiga {
void ispis'njige (String naslov){
S+stem,out,println(-3aslov je - 4 naslov)%
}
public static void main(String args[]) {
}
}
/ada+i.
+0 1reira/te klas' 1n/iga kao ' navedeno% &ri%/er' te /e s&re%ite ' odgovara/''
datotek' 21n/iga0/ava40 1o%&ilira/te /e i izvr5ite &reko razvo/nog alata0 Pro%otrite re!
z'ltat0

)0 - isto/ klasi &ok'5a/te &ozvati %etod' is&is1n/ige24 iz glavne %etode na sl/edee
naine:
is&is1n/ige24
is&is1n/ige29Neka kn/iga94
is&is1n/ige2)40
60 1o%&ilira/te i izvr5ite &rogra% za svaki sl'a/ &o/edinano te za3il/e7ite ko/e se
gre5ke /avl/a/'0 :il/e5ke %o7ete analizirati nakon sl/edeeg &oglavl/a0
"#9#*# o&i!i (etoda
2-tod- s- .vi0-k i3vr/ava0. po po3iv.. 2-tod- s. v-3an- .3 pona/an0- o70-kata
pa s- .0-dno i po3iva0. pr-ko o70-kata, to"ni0- 3a po0-dini o70-kt.
U prim0-r. klas- Knjiga prvo s- kr-ira o70-kt na3iva kn0i!a, a nakon to!a s- 3a
nav-d-ni o70-kt po3iva (etoda i'%i'Knjige;<.
public class 'njiga {
void ispis'njige (String naslov){
S+stem,out,println(-3aslov je - 4 naslov)%
: %@ :
}
public static void main(String args[]) {
'njiga knjiga # ne) 'njiga()%
knjiga,ispis'njige(-5na 'arenjina-)%
}
}
(od po3iva m-tod-, nakon o70-kta 3a ko0i s- 6-li po3vati m-toda o7av-3no s- stav:
l0a to"ka.
knjiga,ispis'njige(-5na 'arenjina-)%
1 o73irom da m-toda priCvaa 0-dan param-tar tipa 1trin!, kod po3iva s- o7av-3:
no mora m-todi prosli0-diti 0-dna vri0-dnost tipa 1trin!. Tip ko0i s- prosl0-5.0-
m-todi mora od!ovarati tip. param-tra . m-todi.
2-toda s- 3a isti o70-kt mo6- po3vati vi/- p.ta ili s- n- mora po3vati .op-. Tako:
5-r s- m-todi mo!. prosl0-5ivati ra3li"it- vri0-dnosti.
)a prim0-r, 3a ist. klas. (n0i!a9
public static void main(String args[]) {
'njiga knjiga # ne) 'njiga()%
knjiga,ispis'njige(-5na 'arenjina-)%
'njiga knjiga( # ne) 'njiga()%
knjiga,ispis'njige(-6ava /-)%
knjiga(,ispis'njige(-7ruba 0ere 'vrice-)%
}
kr-iran 0- 0o/ 0-dan o70-kt kn0i!a% 3a ko0i 0- po3vana m-toda9
ispis'njige().
)akon pokr-tan0a pro!rama ispis 0-9
%aslov je *na Karenj!na
%aslov je +ava ,
%aslov je -ru.ba /ere Kvr.!ce
U klasi (n0i!a, kod pokr-tan0a pro!rama, po r-d. s- i3vr/ava0. nar-d7- . main8>
m-todi.
/ada+i.
+0 1las' 1n/iga iz &rethodnih zadataka iz%i/enite kao ' &ri%/er' te /e ko%&ilira/te i
izvr5ite0 Pro%otrite rez'ltat0
#. 1reira/te izvr5n' klas' Prozor te /e s&re%ite ' odgovara/'' datotek'0 - klasi
Prozor kreira/te %etod' otvori24 te ' n/o/ nared3' ko/o% se is&is'/e 9Prozor se
: %= :
otvara90 1reira/te /o5 /edn' %etod' naziva zatvori24 te ' n/o/ nared3' ko/o% se is&i!
s'/e 9Prozor se zatvara;90 Is&isi se rade nared3o% ,"ste%0o't0&rintln240 - glavno/
2%ain244 %etodi kreira/te /edan o3/ekt klase Prozor i &ozovite o3/e %etode0 1o%&ilira/!
te i izvr5ite &rogra%0 Pro%otrite rez'ltat0
60 1reira/te izvr5n' klas' :rod te %etode &lovi24( 'sidren24 i &rivezan240 - svako/ %e!
todi na&ravite is&is n&r0 9:rod &lovi9(9:rod /e 'sidren90 1reira/te dva o3/ekta klase
:rod i za n/ih &ozovite %etode
"#9#-# ro'lje=i!anje %ara(etara (etodi
Ukoliko s- . klasi (n0i!a 8i3 pr-tCodno! po!lavl0a> kr-ira nova m-toda9
void unesi.&davaca(String i&davac8 int godina){
S+stem,out,println(-.&dava" je -4i&davac)%
S+stem,out,println(-9odina i&danja je -4godina)%
}
m-toda na3iva unesi.&davaca() ima param-tr- na3iva i3davac i !odina.
Tip param-tra i3davac 0- String, a tip param-tra !odina 0- int.
(od po3iva nav-d-n- m-tod- prosl0-5.0. s- konkr-tn- vri0-dnosti r-dosli0-dom
ko0i m-toda 3aCti0-va.
knjiga,unesi.&davaca(-:kolska knjiga-8(;;<)%
knjiga(,unesi.&davaca(-0rentice =all8 .nc,-8 />>?)%
Ukoliko pok./amo po3vati m-tod. na na"in9
knjiga(,unesi.&davaca()%
0avit - s- !r-/ka9
Error0112134: #ethod unes!(zdavaca04 not 5ound !n class Knj!ga
2-tod- s-, osim po na3iv., pr-po3na0. i po param-trima. (od po3iva po0-din-
m-tod- mora0. 0o0 s- prosli0-diti to"no onakvi podaci, po tip. i r-dosli0-d., kakv-
m-toda o"-k.0-. Ukoliko s- m-todi prosl0-5.0- vi/- ili man0- podataka od o"-kiva:
niC ili .koliko s- m-todi prosl0-5.0. podaci ko0i po tip. i r-dosli0-d. n- od!ovara:
0. param-trima m-tod-, onda takva m-toda 0-dnostavno ni0- prona5-na i 0avl0a
s- !r-/ka.
ok./amo li 0o/ po3vati m-tod. na na"in9
knjiga(,unesi.&davaca(@)%
0avl0a s- !r-/ka9
: %? :
Error0112134: #ethod unes!(zdavaca0!nt4 not 5ound !n class Knj!ga
U ovom sl."a0. tip podatka ko0i pok./avamo prosli0-diti m-todi 0- int, a m-toda
3aCti0-va 1trin!.
/ada+i.
+0 - klasi 1n/iga doda/te i &ozovite %etod' 'nesiIzdavaca24( kao ' &ri%/er'( te /e
ko%&ilira/te i izvr5ite0 Pro%otrite rez'ltat0
)0 1reira/te izvr5n' klas' Tekst te /e s&re%ite ' odgovara/'' datotek'0 - klasi
Tekst kreira/te %etod' 'nesiTekst24 ko/a i%a /edan &ara%etar ti&a ,tring0 1reira/te
%etod' 'nesi:ro/24 ko/a i%a /edan &ara%etar ti&a int0 1reira/te %etod' 'nesiTekst!
:ro/24 ko/a i%a dva &ara%etra: /edan ti&a int( dr'gi ti&a ,tring0 - %etoda%a se is&i!
s'/' &rosli/e<eni &ara%etri0 1reira/te dva o3/ekta klase Tekst i &ozovite navedene
%etode0
60 Istra7ite na &ri%/er' &rethodnog zadatka ko/e s' gre5ke %og'e kod &isan/a i &o!
ziva %etoda0
"#9#0# ri%adno't (etode kla'i ili objekt,
ripadnost m-tod- ili vari0a7l- klasi o3na"ava s- kl0."nom ri0-"i 'tati+ i tada !o:
vorimo o stati"kim m-todama.
Ukoliko .3 m-tod. ili vari0a7l. n- dola3i ri0-" static, tada on- nis. stati"k-. U
tom sl."a0. m-toda ili vari0a7la pripada o70-kt..
,lavna m-toda main 0- .vi0-k stati"ka 0-r s- ona kod i3vr/avan0a klas- po3iva
prva P pri0- kr-iran0a o70-kata.
(od i3!radn0- aplikaci0- ri0-tko s- korist- stati"k- vari0a7l- i m-tod-. U!lavnom -
to 7iti onda kada s- 6-li po3vati m-toda 7-3 kr-iran0a o70-kata.
rim0-r stati"kiC m-toda9
public class 7ebug {
static {
int a#;%
S+stem,out,println(-Stati"ka metoda koja se prva -4
- i&vrava -4a)%
}

static void ispis(String debug){
S+stem,out,println(-7ebugA -4debug)%
}
public static void main(String[] args) {
ispis(-(, po&iv metode ispis-)%
7ebug,ispis(-/, po&iv metode ispis-)%
}
: %< :
}
2-toda ispis8> 0- stati"ka m-toda 3a ko0. s- n- tr-7a kr-irati o70-kt da 7i 7ila po:
3vana. Ukoliko s- m-toda po3iva i3 tr-n.ta"n- klas-, mo6- s- po3vati na prvi na:
"in. U protivnom s- m-toda po3iva i3 klas- 8dr.!i na"in>.
Dio koda o3na"-n sa static LQ M 0- kod ko0i s- n- mora pos-7no po3ivati da 7i s-
i3vr/io. &n s- i3vr/ava "ak i pri0- main8> m-tod-.
"#9#2# o!ratni ti% (etode
2-tod- .vi0-k pri0- na3iva ima0. sp-cificiran povratni tip.
Ukoliko m-toda n- vraa nikakv. vri0-dnost, povratni tip 0- !oid.
U ostalim sl."a0-vima sp-cificira s- n-ki dr.!i tip podataka.
1l0-d-i prim0-r 0- klasa .tnik t- m-toda na3iva oso7niodaci8>. ovratni tip t-
m-tod- 0- 1trin!.
public class 0utnik {
String osobni0odaci (String ime8 String pre&ime) {
String osobni# -.me # -4ime4- pre&ime#-4pre&ime%
return osobni%
}

public static void main(String args[]){
0utnik putnik( # ne) 0utnik()%
}
}
Ukoliko m-toda ima povratni tip ra3li"it od void, oba!e&no s- na kra0. m-tod-
stavl0a ret,rn i vri0-dnost ko0. - m-toda vratiti. Vra-na vri0-dnost mora imati
isti tip podataka kao i povratni tip m-tod-.
,lika ): -.L diagra% klasa = &o&is %etoda
U konkr-tnom sl."a0.9
return osobni%
vraa vri0-dnost vari0a7l- oso7ni i n0-3in tip mora od!ovarati sp-cificiranom po:
vratnom tip. 81trin!>.
: %A :
2-todi s-, prilikom n0-3ina po3iva, prosl0-5.0. dva param-tra. 2-toda vraa po:
datak tipa 1trin!. R-3.ltat vraan0a 0- vri0-dnost ko0a s- mo6- ispisati, iskoristiti
kao .la3ni param-tar 3a dr.!. m-tod. ili 7ilo /to dr.!o.
public static void main(String args[]){
0utnik putnik( # ne) 0utnik()%
String s# putnik(,osobni0odaci(-5na-8-0eri!-)%
S+stem,out,println(s)%

S+stem,out,println(-0odaci o putniku su -4
putnik(,osobni0odaci(-Bartin-8-Bartinovi!-))%
}
/ada+i.
+0 1reira/te klas' P'tnik kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &ro!
gra%0 Pro%otrite rez'ltat0
)0 Iz%i/enite klas' P'tnik tako da dodate /o5 /edn' %etod' is&isDestinaci/e24 ko/a
&rihvaa &ara%etre: naziv( 3ro/ noen/a( ci/ena i o&is0 Naziv i o&is s' ti&a ,tring( a
3ro/ noen/a i ci/ena s' ti&a int0 .etoda vraa sve in#or%aci/e kao ti& ,tring0 1o%&ili!
ra/te i &okrenite &rogra%0 Pro%otrite rez'ltat0
60 1reira/te klas' Trok't i %etod' o&seg s &ara%etri%a: int a( int 3( int c0 .etoda
vraa z3ro/ navedenih &ara%etara kao o&seg0 - glavno/ %etodi kreira/te o3/ekt i &o!
zovite %etod' o&seg0 Na&ravite is&is o&sega0 1o%&ilira/te i &okrenite &rogra%0 Pro!
%otrite rez'ltat0
"#9#3# rekla%anje (etoda
U Javi 0- omo!.-no kr-iran0- m-toda isto! na3iva. on-kad 0- to potr-7no 0-r n-
6-limo m-tod- ko0- rad- ist-;sli"n- akci0- im-novati dr.!a"i0-. (ada s- kr-ira0.
m-tod- ko0- rad- isto ili sli"no, a m-todi tr-7amo prosli0-diti ra3li"it- tipov- vri:
0-dnosti samo s ra3li"itim tipovima param-tara, onda 0- lo!i"no im-novati m-tod-
istim na3ivom. 2-tod- ko0- ima0. isti na3iv ra3lik.0. s- tada pr-ma 7ro0., tip. ili
r-dosli0-d. param-tara.
Ra takv- m-tod- ka6-mo da s- pr-klapa0..
public class .spis {
void ispis(String tekst){
S+stem,out,println(-(*ekst) -4tekst)%
}
void ispis(int brojStranice){
S+stem,out,println(-(Croj stranice) -4brojStranice)%
: %B :
}
void ispis(double broj0oglavlja){
S+stem,out,println(-(Croj poglavlja) -4broj0oglavlja)%
}
void ispis(String naslov8 String tekst){
S+stem,out,println(-(3aslov) -4naslov)%
S+stem,out,println(tekst)%
}
void ispis(String naslov8 double broj0oglavlja){
S+stem,out,print(broj0oglavlja4- -)%
S+stem,out,println(-(3aslov) -4naslov)%
}
public static void main(String[] args) {
.spis ispis # ne) .spis()%
}
}
2-tod- na3iva ispis8> s- pr-klapa0. t- s- po potr-7i po3iva po0-dina m-toda.
rilikom po3iva m-tod- ispis8> imamo p-t mo!.nosti na ko0i -mo na"in po3vati
nav-d-n. m-tod.9
mo6- s- prosli0-diti vri0-dnost tipa 1trin!
mo6- s- prosli0-diti vri0-dnost tipa int
mo6- s- prosli0-diti vri0-dnost tipa do.7l-
mo!. s- prosli0-diti vri0-dnosti tipa 1trin! i 1trin!
mo!. s- prosli0-diti vri0-dnosti tipa 1trin! i do.7l-.
&visno o prosli0-5-nim vri0-dnostima, 7ro0., tip. i r-dosli0-d., po3iva s- i ra3li"i:
ta m-toda.
public static void main(String[] args) {
.spis ispis # ne) .spis()%
ispis,ispis(-0rimitivni tipovi podataka-8(,/)%
ispis,ispis(-0rimitivni tipovi podataka suA- 4
-boolean8 b+te8 sDort8 int8 long8 Eloat8-4
- double-)%
ispis,ispis(F>)%
}
/ada+i.
+0 1reira/te klas' Is&is kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &rogra%0
Pro%otrite rez'ltat0
: #$ :
)0 Pozovite i %etode is&is24 ko/e nis' &ozvane ' &ri%/er'0
60 1reira/te klas' Vri/e%e i %etode &ostaviVri/e%e ko/i%a se &rosl/e<'/e:
int dan( int %/esec( int godina
,tring dan( ,tring %/esec( ,tring godina
,tring dan>'>t/edn'( int %/esec( int godina
long vri/e%e0
Navedene %etode i%a/' is&is &ara%etara na ekran'0 Pozovite %etode i &ro!
%otrite is&ise0
80 - klasi Vri/e%e &ozovite %etode &ostaviVri/e%e24 na sl/edei nain:
&ostaviVri/e%e2)**?)*++ L4
8
&ostaviVri/e%e29&oned/el/ak9()@(8()*++4
&ostaviVri/e%e2)@(8()*++(9+@:6*94
&ostaviVri/e%e29)@080)*++9(9+@:6*940
Pro%otrite rez'ltate0 1reira/te %etode ko/e nedosta/' ' klasi Vri/e%e0
@0 1reira/te klas' .ath te sl/edee %etode:
z3ro/ 2int A( int "( int z4 = vraa int
z3ro/ 2#loat A( #loat "( #loat z4 = vraa #loat
z3ro/ 2int A( int "4 = vraa do'3le
z3ro/ 2,tring A( ,tring "4 = vraa ,tring0
sig'ra/te is&ise z3ro/eva0 Pozovite %etode i &ro%otrite is&ise0
@
Vri0-dnosti tipa podatka lon! s. c0-lo7ro0n- i pi/. s- npr9 B L 8L o3na"ava lon!>. D-tal0ni0- o
tipovima podataka 7it - napisano . 3as-7nom po!lavl0.
: #% :
)# Ti%o!i %odataka , Ja!i
U Javi s- podaci di0-l- na dva osnovna tipa9
primitivni 80-dnostavni> tipovi podataka
slo6-ni tipovi podataka.
)#"# ri(iti!ni ti%o!i %odataka
osto0i osam primitivniC 80-dnostavniC> tipova podataka.
Ti%
%odatka
odra&,(ije!a
na !rijedno't
Veli7ina :in
!rijedno't
:a>
!rijedno't
b?te $ A:7itni c0-lo7ro0ni :%#A %#<
'hort $ %?:7itni c0-lo7ro0ni :4#<?A 4#<?<
int $ 4#:7itni c0-lo7ro0ni :#%@<@A4?@A #%@<@A4?@<
long $L ?@:7itni c0-lo7ro0ni :B##4 J %$
%=
B##4 J %$
%=
@loat $.$f 4#:7itni s pomi"nim
3ar-3om
1p-cificirano IEEE <=@
=
standardom

do,ble $.$d ?@:7itni s pomi"nim
3ar-3om
boolean fals- %:7itni fals-, tr.-
+har '\u0000' %?:7itni Unicod-
karakt-r
'\u0000'
(0)
ST.ffffS 8?==4=>
Ta3lica +: Pri%itivni ti&ovi &odataka i &odraz'%i/evane vri/ednosti
'Dt- i sCort tipovi pon-kad s- korist- .m0-sto int tipa, .koliko 0- potr-7na ./t-da
m-mori0sko! prostora.
D-klaraci0om po0-din- vari0a7l- . m-mori0i s- r-3-rvira ona v-li"ina prostora ko0a
0- d-finirana v-li"inom tipa. U ta7lici 0- dana v-li"ina 3a po0-dini primitivni tip po:
dataka.
=
IEEE 1tandard for 'inarD Uloatin!:oint *ritCm-tic
: ## :
rim0-ri d-klaraci0- i dod0-l0ivan0a vri0-dnosti primitivnim tipovima9
int l # <F%
long b # /@<FG%
Eloat c # /@,;<E%
double d # /F,$%
sDort e # @%
b+te E # <%
boolean # Ealse%
odra3.mi0-vani tipovi
odra3.mi0-vani tip 3a 7ro0-v- %$, %%... 0- int.
odra3.mi0-vani tip 3a 7ro0-v- %$.%, %%.4A... 0- do.7l-.
Ukoliko 6-limo na3na"iti da s. 7ro0-vi %$ i %% tipa lon!, onda pi/-mo %$L i %%L.
Isto vri0-di i 3a float.
Ukoliko vari0a7li ni0- dodi0-l0-na nikakva vri0-dnost, kompil-r prilikom i3vr/ava:
n0a nasto0i postaviti vari0a7li inici0aln. podra3.mi0-van. vri0-dnost. odra3.mi0-:
van- vri0-dnosti s. dan- . ta7lici.
)#)# Sloeni ti%o!i %odataka
1lo6-ni tipovi podataka s. oni ko0i s- sasto0- od sk.pa podataka, t0. n- sadr6-
samo 0-dn. vri0-dnost. Takav tip podataka od!ovara klasi.
(lasa 0- slo6-ni tip podatka. odaci s- ".va0. . o70-kt.. Do o70-kta s- mo6- doi
pr-ko r-f-r-nc-. R-f-r-nca s- d-finira kod samo! kr-iran0a o70-kta.
0utnik putnik # ne) 0utnik()%
U prim0-r. s- navodi tip podatka 8tip r-f-r-nc-> i na3iv r-f-r-nc- ko0i r-f-rira na
novi kr-irani o70-kt klas- 8tipa podataka> .tnik.
Vari0a7la p.tnik samo poka3.0- 8vodi> na tr-n.ta"ni o70-kt . m-mori0i P !ovorimo
o r-f-r-nci na o70-kt.
Ukoliko samo ostavimo d-klaraci0.9
0utnik putnik%
i n- kr-iramo o70-kt, r-f-r-nca n-- poka3ivati na o70-kt. U tom s- sl."a0.
.m0-sto o70-kta postavl0a n.ll ko0i o3na"ava n-dostatak o70-kta.
(ad !od kr-irat- klas., 3apravo kr-irat- i svo0 tip podatka.
: #4 :
)#*# String
(lasa 1trin! pripada slo6-nom tip., iako s- s tom klasom mo6- raditi kao i s pri:
mitivnim tipovima.
Vri0-dnost to! tipa .vi0-k s- stavl0a . dvostr.k- navodnik- EE.
rim0-r d-klaraci0- i dod0-l0ivan0a vri0-dnosti9
String ime # -Barko-%
String ime # ne) String(-Barko-)%
&7a na"ina rad- ist. stvar9 r-f-r-nci im- dodi0-l0-n 0- o70-kt tipa 1trin!.
1trin! 0- sp-cifi"na klasa i po tom- /to s- o70-kti t- klas- mo!. 0-dnostavno t-ks:
t.alno prika3ati
?
.
rim0-r9
S+stem,out,println(ime)%
1trin! pr-3im- F E2arkoviEI
1trin! im-ViVpr-3im- F im-WE EWpr-3im-I
&p-ratorom W na3na"-no 0- spa0an0- strin!ova, t0. spa0an0- t-ksta.
Ra .spor-d7. dva0. o70-kata klas- 1trin! koristi s- m-toda eA,al'.
rim0-r9
String mjesec # ne) String (-travanj-)%
String mjesec( # -travanj-%
mjesec,eHuals(mjesec()% // re&ultat metode je true
ovratni tip m-tod- eA,al';< 0- 7ool-an, odnosno m-toda mo6- vratiti tr.- ili fal:
s-.
?
&70-kti ostaliC klasa mo!. imati svo0stvo t-kst.alno! prika3a .koliko n0iCov- klas- ima0.
m-tod. to1trin!8>.
: #@ :
)#-# Kon!er&ija %ri(iti!nih ti%o!a %odataka
)#-#"# A,to(at'ka
(od primitivniC n.m-ri"kiC tipova podataka a.tomatska konv-r3i0a id- . sm0-r.9
7Dt- . sCort, int, lon!, float, do.7l-
sCort . int, lon!, float, do.7l-
int . lon!, float, do.7l-
lon! . float i do.7l-
float . do.7l-.
rim0-r9
public class Iacunanje {
public static void main(String[] args) {
int J # F%
long l # J%
S+stem,out,println(-5utomatska konver&ija int u long-)%
Eloat E # ;>G% //5utomatska konver&ija long u Eloat
}
}
*.tomatska konv-r3i0a tako5-r s- mo6- 0aviti kod prosl0-5ivan0a vri0-dnosti m-to:
di, kao i kod povratno! tipa m-tod-.
rim0-r9
public class Iacunanje/ {
double &broji(double J8 double +) {
return J4+%
}
public static void main(String[] args) {
Iacunanje/ r # ne) Iacunanje/()%
double &broj # r,&broji((,@8/,?)%
S+stem,out,println(-Kbroj je -4&broj)%
double &broj/ # r,&broji(@8 F)%
S+stem,out,println(-/, &broj je -4&broj/)%

S+stem,out,println(r,&broji($;G8 @))%
}
}
: #= :
U prim0-r. Rac.nan0-#.0ava m-toda 37ro0i8> priCvaa dva param-tra tipa do.7l-,
37ra0a iC i vraa r-3.ltat ko0i 0- tipa do.7l-. (od po3iva m-tod-9
r,&broji((,@8 /,?)%
m-todi 37ro0i8> prosl0-5.0. s- podaci tipa do.7l- 8podra3.mi0-vani tip 3a 7ro0-v-
%.4 i #.? 0- do.7l->.
1 o73irom da m-toda 37ro0i8> od!ovara, po na3iv. i po tip., 7ro0. i r-dosli0-d. pa:
ram-tara ko0i 0o0 s- prosl0-5.0., ta s- m-toda i3vr/ava, a r-3.ltat i3vr/avan0a 3a:
pis.0- s- . vari0a7l. 37ro09
double &broj # r,&broji((,@8/,?)%
U dr.!om sl."a0.9
double &broj/ # r,&broji(@8 F)%
m-todi 37ro0i8> prosl0-5.0. s- podaci tipa int 8podra3.mi0-vani tip 3a 7ro0-v- 4 i =
0- int>. 1 o73irom da m-toda 37ro0i s tim tipovima param-tara n- posto0i, tr-7ala
7i s- 0aviti !r-/ka9
metDod &broji(int8 int) doesnLt eJist in class Iacunanje/
2-5.tim, 37o! a.tomatsk- konv-r3i0- tipova podataka, po3vat - s- m-toda
37ro0i8do.7l- J, do.7l- D>. ri po3iv. t- m-tod- 7ro0-vi 4 i = s- konv-rtira0. . tip
do.7l-9 4.$ i =.$.
U sl."a0. da 0- posto0ala dr.!a m-toda 37ro0i8int J, int D>, onda 7i s- po3vala ta
dr.!a m-toda ko0o0 tip param-tara vi/- od!ovara po3iv. r.37ro0i84, =>.
U sl."a0. 7ilo ko0- aritm-ti"k- ra".nsk- op-raci0-, r-3.ltat s- .vi0-k prvo svodi
na int, a nakon to!a na na0v-i tip9
Eloat re& # @ * <G 4 F,?E% // (int) * (long) + (float)
double re&( # (>,? M <,;E% // (double) - (float)
b+te b # @%
sDort s # //>%
int re&/ # b 4 s%
(ada 0- ri0-" o tip. 1trin!, v- smo radili s ispisima9
S+stem,out,println(-Kbroj je -4re&)%
: #? :
U ovom sl."a0., op-rator W radi spa0an0- podataka ER7ro0 0- E i r-3. rilikom spa:
0an0a podataka r-3 s- konv-rtira i3 float . tip 1trin! i na ta0 na"in do7ivamo r-:
3.ltat tipa 1trin!.

/ada+i.
+0 1reira/te klas' Rac'nan/e kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite
&rogra%0 Is&ita/te a'to%atske konverzi/e iz%e<' ostalih &ri%itivnih ti&ova0
)0 - klasi Rac'nan/e testira/te konverzi/' iz 3oolean ' int i o3rn'to0
60 1reira/te klas' Rac'nan/e) kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite
&rogra%0
80 - klasi Rac'nan/e) kreira/te dvi/e %etode z3ro/i24 ko/e 3i vi5e odgovarale &ozivi!
%a r0z3ro/i26( @4 i r0z3ro/i2B?L( 640 Is&ita/te ko/e se %etode &oziva/' i ' ko/i% sl'a/e!
vi%a0 Da 3iste %ogli odgovoriti( ' svako/ %etodi z3ro/i24 doda/te i is&ise na ekran'0
@0 - klasi Rac'nan/e) ' glavno/ %etodi testira/te ra'nske o&eraci/e iz &ri%/era i na!
&ravite is&ise rez'ltata0 Is&ita/te ko/e se gre5ke /avl/a/' 'koliko 'z vari/a3le rez i
rez+ &ostavite ti& int( a ko/a se gre5ka /avl/a 'koliko 'z vari/a3l' rez) &ostavite ti&
3"te0
C0 Pro%otrite is&ise:
S+stem,out,println(-Kbroj je -4re&4re&()%
i
S+stem,out,println(-Kbroj je -4(re&4re&())%
3/asnite rez'ltate ovih is&isa0
)#-#)# Nea,to(at'ka ;t?%e +a'ting<
)-a.tomatska konv-r3i0a podataka id- . sm0-r. s.protnom od a.tomatsk- P ko:
nv-rtira0. s- v-i tipovi . man0- i pritom s- mora -ksplicitno nav-sti tip podatka
. ko0i s- radi konv-r3i0a. (onv-r3i0- s- navod- . okr.!lim 3a!radama 8>.
rim0-r9
long J # @G%
int + # (int) J%
U ovom prim0-r., navo5-n0-m 8int> J, dan 0- tip podatka . ko0i konv-rtiramo J.
Tim- s- -ksplicitno navodi da 0- J tipa int 7-3 o73ira ko0-! 0- tipa i3vorno.
: #< :
)-a.tomatska konv-r3i0a radi s mo!.im !.7itkom podataka pa tako . sl."a0.9
double & # @,(<%
int r # (int) &%
vari0a7la r do7iva vri0-dnost 4, t0. !.7- s- vri0-dnosti i3a d-cimaln- to"k-.
/ada+i.
+0 1reira/te izvr5n' klas' 1onverzi/a0 - glavno/ %etodi testira/te sve sl'a/eve ne!
a'to%atske konverzi/e iz%e<' &ri%itivnih ti&ova &odataka0 Pro%otrite g'3itke &oda!
taka kod izrazito velikih 3ro/eva0 Prov/erite /e li %og'a konverzi/a ' 3oolean i char
ti&ove0
)#0# O%eratori
&p-rator- mo6-mo podi0-liti na .narn- i 7inarn-, ovisno o tom- nad koliko s- vri :
0-dnosti oni prim0-n0.0..
rim0-r9 &p-rator W .9 JWD 0- 7inarni op-rator.
rim0-r9 &p-rator WW .9 JWW 0- .narni op-rator.
)#0#"# Arit(eti7ki o%eratori
*ritm-ti"ki op-ratori korist- s- 3a o7avl0an0- osnovniC mat-mati"kiC op-raci0a.
O%erator Na(jena ri(jer
W 37ra0an0- 3 F J W DI
: od.3iman0- 3 F J : DI
N mno6-n0- 3 F J N DI
; di0-l0-n0- 3 F J ; DI
X mod.lo 8ostatak c0-lo7ro0no!
di0-l0-n0a>
3 F J X DI
WW .v-avan0- vri0-dnosti 3a % J:: 83na"i9 JFJ:%>
:: .man0ivan0- vri0-dnosti 3a % J:: 83na"i9 JFJ:%>
WF 37ra0an0- .3 dod0-l. vri0-dnosti JWF4 83na"i9 JFJW4>
:F od.3iman0- .3 dod0-l. vri0-dnosti J:F= 83na"i9 JFJ:=>
NF mno6-n0- .3 dod0-l. vri0-dnosti JNF%# 83na"i9 JFJN%#>
;F di0-l0-n0- .3 dod0-l. vri0-dnosti J;F# 83na"i9 JFJ;#>
XF mod.lo .3 dod0-l. vri0-dnosti JXF# 83na"i9 JFJX#>
Ta3lica ): Drit%etiki o&eratori
: #A :
(od 7ilo ko0- nav-d-n- aritm-ti"k- op-raci0- .vi0-k s- radi svo5-n0- vari0a7li na
na0v-i tip, a r-3.ltat onda od!ovara tom tip.. U sl."a0. da s. vari0a7l- tipa 7Dt-
ili sCort, kod ra".nskiC op-raci0a svod- s- na int.
rim0-r9
b+te b( # @%
b+te b/ # <%
int b@ # b( 4 b/% //kod ra"unske operacije svoNenje na int
(od c0-lo7ro0no! di0-l0-n0a r-3.ltat 0- .vi0-k ci0-li 7ro0.
int r # @ / /%
double r( # @,> / /%
R-3.ltati r i r% s. ra3li"iti.
)#0#)# O%eratori nad bito!i(a
&p-ratori nad 7itovima korist- s- 3a sv- c0-lo7ro0n- tipov-9 7Dt-, sCort, int, lon!.
Tako5-r s- mo!. koristiti i na tip. cCar. 1vaka od nav-d-niC op-raci0a o7avl0a s-
na po0-dinom 7it. nav-d-no! 7ro0a. ritom s-, naravno, misli na 7itov- 7ro0a .
7inarnom 3apis..
O%erator Na(jena ri(jer
Y Unarno )&T na 7itovima c F YaI
Z *)D na 7itovima c F a Z 7I
[ &R na 7itovima c F a [ 7I
\ ]&R P Ekskl.3ivno &R c F a \ 7I
^^ omican0- 7itova .d-sno c F a ^^ #I
^^^ omican0- 7itova .d-sno .3 pop.n0avan0-
n.lom
c F a ^^^ #I
__ omican0- 7itova .li0-vo c F a __ #I
ZF *)D na 7itovima .3 dod0-l. vri0-dnosti 7 ZF aI 87 F 7Za>
[F &R na 7itovima .3 dod0-l. vri0-dnosti 7 [F aI 87 F 7[a>
\F ]&R P Ekskl.3ivno &R .3 dod0-l. vri0-dnosti 7 \F aI 87 F 7\a>
^^F omican0- 7itova .d-sno .3 dod0-l.
vri0-dnosti
7 ^^F %I 87 F 7^^%>
^^^F omican0- 7itova .d-sno .3 pop.n0avan0-
n.lom i dod0-l. vri0-dnosti
7 ^^^F aI
87 F 7^^^a>
__F omican0- 7itova .li0-vo .3 dod0-l. vri0-dnosti 7 __F aI 87 F 7__a>
Ta3lica 6: &eratori nad 3itovi%a
: #B :
)#0#*# O%eratori ,'%oredbe
&p-ratori .spor-d7- .spor-5.0. op-rand-, a r-3.ltat 0- 7ool-an tipa9 tr.- ili fal:
s-.
O%erator Na(jena ri(jer
FF J-dnako if 8aFF7> L print8EJ-dnakoE>I M
`F Ra3li"ito if 8a`F7> L print8ERa3li"itoE>I M
^ V-- od if 8a^7> L print8aWE 0- v-- od EW7>I M
_ 2an0- od if 8a_7> L print8aWE 0- man0- od EW7>I M
^F V-- ili 0-dnako if 8a^F7> L print8aWE 0- v-- ili 0-dnako
EW7>I M
_F 2an0- ili 0-dnako if 8a_F7> L print8aWE 0- man0- ili 0-dnako
EW7>I M
Ta3lica 8: &eratori 's&ored3e
)#0#-# Logi7ki o%eratori
O%erator Na(jena ri(jer
` Lo!i"ka n-!aci0a if 8`a> print8Ea 0- fals-E>I
ZZ Lo!i"ki *)D 88aFF7> ZZ8a_c>>
[[ Lo!i"ki &R 88a_F7> [[ 8a_Fc>>
FF J-dnako 8aFF7>
`F Ra3li"ito 8a`F7>
a9 T-rnarni op-rator a_%$ a aN# 9 a;#I
Ta3lica @: Logiki o&eratori
: 4$ :
)#2# Varijable
U Javi ra3lik.0-mo sl0-d-- vari0a7l-9
vari0a7l- o70-kta
vari0a7l- klas-
lokaln- vari0a7l-
param-tri.
Varijable objekta 8vari0a7l- instanc-> odnos- s- na on- vari0a7l- d-klariran- .n.:
tar klas-. (od kompiliran0a pro!rama, 3a svaki kr-irani o70-kt radi s- kopi0a tiC
vari0a7li. 1vaka kopi0a sadr6i svo0- vri0-dnosti ko0- pripada0. po0-dinom o70-kt..
Vri0-dnosti dodi0-l0-n- tim vari0a7lama 0-dinstv-n- s. 3a svaki o70-kt 8instanc.
klas-> 3as-7no.
)a slici 0- prika3an U2L di0a!ram o70-kata.
(lasa Lini0a sadr6i d-klariran- vari0a7l- o70-kta9 sirina, poc-tna]o3 i
poc-nabo3.
TankaLini0a i d-7-laLini0a s. o70-kti nav-d-n- klas-. 1vakom o70-kt. pridr.6-n-
s. 3as-7n- vri0-dnosti nav-d-niC vari0a7li.
: 4% :
,lika 6: -.L di/agra% o3/ekta E
vari/a3le o3/ekata
Klasa Linija
Objekti:
tankaLinija i
debelaLinija
ripadni kod i3!l-dao 7i ovako9
public class Ginija {
int sirina% // deklaracija varijabli objekta
int pocetnaO0o&%
int pocetnaP0o&%

public static void main(String[] args) {
Ginija tankaGinija # ne) Ginija()% // objekt
tankaGinija,sirina # (%
tankaGinija,pocetnaO0o& # (>%
tankaGinija,pocetnaP0o& # (>>%
Ginija debelaGinija # ne) Ginija()%
debelaGinija,sirina # (>%
debelaGinija,pocetnaO0o& # (>%
debelaGinija,pocetnaP0o& # />>%
}
}
1v- vari0a7l- . Javi pri0- kori/t-n0a mora0. 7iti d-klariran-, pri "-m. s- .nosi tip
vari0a7l- i na3iv vari0a7l-.
Vari0a7la s- .3 d-klaraci0. postavl0a na n-k. po"-tn. vri0-dnost 8inici0ali3aci0a>.
Ukoliko s- vari0a7la d-klarira, a n- dodi0-li 0o0 s- -ksplicitno inici0alna vri0-dnost,
onda s- a.tomatski postavl0a0. podra3.mi0-van- vri0-dnosti 3a nav-d-ni tip po:
dataka. &vo s- pos-7no odnosi na vari0a7l- o70-kta i vari0a7l- klas-.
odra3.mi0-van- vri0-dnosti 3a primitivn- tipov- podataka dan- s. . ta7lici.
Do7ra 0- praksa . pro!ramiran0. da s- kod d-klariran0a vari0a7li postav- i inici:
0aln- vri0-dnosti.
Ra !or- nav-d-ni kod po6-l0no 7i 7ilo postaviti9
int sirina # >%
int pocetnaO0o& # >%
int pocetnaP0o& # >%
Varijable kla'e
<
o3na"ava0. s- 0o/ i kao stati"k- vari0a7l- 8.3 n0iC s- stavl0a kl0.":
na ri0-" static>. Vari0a7l- klas- n- .mno6ava0. s- prilikom kompiliran0a, t0. posto0i
samo 0-dna kopi0a t- vari0a7l-, n-ovisno o tom- koliko s- p.ta klasa instancira,
odnosno n-ovisno o tom- koliko s- o70-kata t- klas- kr-ira.
rim0-r9
public class Croj {
static int nekiro! " #;
<
& m-todama 0- 7ila ri0-" . po!lavl0.9 ripadnost m-tod- klasi ili o70-kt.
: 4# :
public static void main(String[] args) {
nekiCroj44%
S+stem,out,println(-nekiCroj po&van direktno -4
nekiCroj)%
Croj,nekiCroj44%
S+stem,out,println(-nekiCroj po&van preko klase -4
Croj,nekiCroj)%

Croj broj # ne) Croj()%
broj,nekiCroj44%
S+stem,out,println(-nekiCroj po&van preko objekta-4
broj,nekiCroj)%
}
}
Vari0a7la n-ki'ro0 0- stati"ka, odnosno pripada klasi 'ro0. Ukoliko s- vari0a7la
po3iva i3 main8> m-tod- ist- klas-, onda s- mo6- po3vati dir-ktno. Lini0a9
nekiCroj44%
0- dir-ktan po3iv vari0a7l-.
Ukoliko s- stati"ka vari0a7la po3iva i3 n-k- dr.!- klas-, onda s- po3iva na na"in9
Croj,nekiCroj44%
Dakl-, .3 vari0a7l. s- pi/- pripadnost klasi. Da 7ismo prist.pili nav-d-no0 vari0a:
7li, n- moramo kr-irati o70-kt, ali ako !a i kr-iramo, onda mo6-mo isto0 vari0a7li
prist.piti i pr-ko o70-kta. U tom s- sl."a0. isto0 vari0a7li mo6- prist.piti i pr-ko
7ilo ko0-!a dr.!o! o70-kta9
broj,nekiCroj44%
U sl."a0. da radimo s vari0a7lama ko0- pripada0. klasi, kod kr-iran0a o70-kta n-
radi s- 3as-7na kopi0a t- vari0a7l-
rim0-r9
,lika 8: -.L di/agra% o3/ekta E vari/a3la klase
: 44 :
(lasa 1tanovnici ima stati"k. vari0a7l. .k.pan'ro01tanovnika. Vri0-dnost vari0a:
7l- s- mi0-n0a n-stati"kom m-todom .n-si'ro01tanovnika8>, . ko0o0 s- vri0-dnost
vari0a7l- .k.pan'ro01tanovnika .v-ava 3a prosli0-5-n. vri0-dnost. Ra o70-kt-9
stanovnici9rad( i stanovnici9rad/
vari0a7la .k.pan'ro01tanovnika 0- 3a0-dni"ka t- o3na"ava .k.pan 7ro0 stanovni:
ka . o7a !rada 3a0-dno.
2-toda .n-si'ro01tanovnika8> po3iva s- pr-ko o70-kata i 3a svaki o70-kt prima
7ro0 stanovnika i3 0-dno! pa i3 dr.!o! !rada.
)a kra0. s- po3iva stati"ka m-toda9
ispisiQkupanCrojStanovnika()
ko0. mo6-mo po3vati n-ovisno o o70-ktima.
rim0-r9
public class Stanovnici {

static long ukupanCrojStanovnika # >%

void unesiCrojStanovnika(int broj){
ukupanCrojStanovnika 4# broj%
}
static void ispisiQkupanCrojStanovnika(){
S+stem,out,println(-Qkupan broj stanovnika je -4
ukupanCrojStanovnika)%
}
public static void main(String[] args) {
Stanovnici stanovnici9rad( # ne) Stanovnici()%
stanovnici9rad(,unesiCrojStanovnika(/>>(;$)%

Stanovnici stanovnici9rad/ # ne) Stanovnici()%
stanovnici9rad/,unesiCrojStanovnika((/@$;>)%

Stanovnici,ispisiQkupanCrojStanovnika()%
}
}
(oraci9
%. (r-ira s- o70-kt stanovnici,rad% klas- 1tanovnici. Vari0a7la .k.pan:
'ro01tanovnika n-ma svo0. kopi0. 3a nav-d-ni o70-kt s o73irom da pripada
klasi.
#. Ra o70-kt stanovnici,rad% po3iva s- m-toda .n-si'ro01tanovnika8> ko0o0
s- prosl0-5.0- c0-lo7ro0na vri0-dnost.
: 4@ :
4. Uk.pan'ro01tanovnika WF #$$%BA 0- 3apravo op-raci0a9
A
.k.pan'ro01tanovnika F .k.pan'ro01tanovnika W #$$%BAI
!d0- s- 37ra0a0. vri0-dnosti s d-sn- stran- i pridr.6.0. vari0a7li s li0-v- stra:
n- 8.k.pan'ro01tanovnika F #$$%BA>.
@. (r-ira s- o70-kt stanovnici,rad# klas- 1tanovnici.
=. Ra o70-kt stanovnici,rad# po3iva s- m-toda .n-si'ro01tanovnika8> ko0o0
s- prosl0-5.0- c0-lo7ro0na vri0-dnost.
?. Uk.pan'ro01tanovnika WF %#4AB$
da0- kona"n. vri0-dnost 4#@$AA.
<. (ona"no s- po3iva m-toda9
1tanovnici.ispisi'ro01tanovnika8>I
ko0a ispis.0- vri0-dnost vari0a7l- .k.pan'ro01tanovnika.
Lokalne !arijable s- d-klarira0. .n.tar po0-din- m-tod-9
double i&racun0rire&a(double osnovica){
double prire$ # ($,>>%
return (osnovica * prire&) / (>>%
}
Vari0a7la prir-3 0- lokalna vari0a7la i n- vri0-di i3van nav-d-n- m-tod-.
Lokaln- vari0a7l- mora0. s- inici0ali3irati, odnosno mora0. im s- dodi0-liti vri0-d:
nosti pri0- kori/t-n0a, s o73irom da kompil-r to n-- sam .raditi, kao . sl."a0.
vari0a7li o70-kta i klasa.
public class Rovjek {
public void ispisiCB.(double visina8 double te&ina){
double bmi;
bmi # te&ina / (visina * visina)%
S+stem,out,println(-CB. je -4bmi)%
}
public static void main(String[] args) {
Rovjek covjek # ne) Rovjek()%
covjek,ispisiCB.((,$>8 S/)%
}
}
D-klaraci0a lokaln- vari0a7l- 7mi9
double bmi%
A
&p-raci0- i op-ratori s. o7ra5-ni . 3as-7nom po!lavl0.
: 4= :
Dod0-la vri0-dnosti vari0a7li9
bmi # te&ina / (visina * visina)%
'-3 dod0-l- vri0-dnosti vari0a7li 0avila 7i s- !r-/ka9
Error062714: var!able b#! #!ght not have been !n!t!al!zed
ara(etri s. vari0a7l- ko0- s- navod- .n.tar okr.!liC 3a!rada . m-todama. U
pr-tCodnom prim0-r. 8klasa Cov0-k> param-tri s.9
double visina8 double te&ina
)av-d-n- vari0a7l- d-klariran- s. .n.tar 3a!rada m-tod-, a dodi0-l0-n- vri0-d:
nosti s. on- ko0- im s- prosl0-5.0. po po3iv.9
public void ispisiCB.(double visina8 double te&ina){
,,,
}
o3iv m-tod-9
covjek,ispisiCB.((,$>8 S/)%
Vari0a7l- visina i t-3ina do7iva0. prosli0-5-n- vri0-dnosti9
visina # (,$>
te&ina # S/
/ada+i.
+0 1reira/te klas' Lini/a kao ' navedeno% &ri%/er'0 Doda/te %etod' is&is24 za is&is
vari/a3li o3/ekta0 Pozovite %etod' za dane o3/ekte0 1o%&ilira/te i &okrenite &rogra%0
Pro%otrite rez'ltat0
)0 1reira/te klas' :ro/ kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &rogra%0
Pro%otrite rez'ltat0 Doda/te vari/a3l' o3/ekta 3ro/ i na&ravite is&ise za/edno s vari/a!
3lo% klase neki:ro/0 Pro%otrite razlike ' &ozivi%a vari/a3li0
60 1reira/te klas' ,tanovnici kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite
&rogra%0 Pro%otrite rez'ltat0 Doda/te %etod' izrac'nPrireza24 i &ozovite /e iz glavne
%etode0
: 4? :
80 - klasi ,tanovnici doda/te ko%entare 'z vari/a3le klase( o3/ekta( lokalne vari/a3le
te &ara%etre0
@0 1reira/te klas' $ov/ek kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &ro!
gra%0 Pro%otrite rez'ltat0 Pok'5a/te generirati gre5k' dan' ' &ri%/er'0
C0 - klasi $ov/ek doda/te vari/a3le o3/ekta: i%e i &rezi%e ti&a ,tring0
)#3# odr,7je !aenja !arijabli ;'+o%e<
odr."0- va6-n0a vari0a7li odr-5-no 0- viti"astim 3a!radama LM. Vari0a7la vri0-di od
tr-n.tka d-klaraci0- pa do 3avr/-tka 3a!rada .n.tar ko0iC 0- d-klarirana.
romotrit- kod9
public class Tarijable {
int i # >%
String na&iv # -*est-%

void testiranje(){
S+stem,out,println(-*estiranje -4na&iv)%
int i # ;%
double j # (>,;%
S+stem,out,println(i4j)%
}
public static void main(String[] args) {
Tarijable var # ne) Tarijable()%
var,testiranje()%
}
}
Vari0a7l- o70-kta i i na&i! vri0-d- .n.tar ci0-l- klas-. Lokaln- vari0a7l- . m-todi
t-stiran0-8>, i i j, vri0-d- od tr-n.tka d-klaraci0- pa do kra0a m-tod-. Lokaln- vari:
0a7l- mo!. imati isti na3iv kao i vari0a7l- o70-kta.
,l-dano .n.tar m-toda, lokaln- vari0a7l- ima0. priorit-t kod prist.pa. U !orn0-m
sl."a0. op-raci0a iW0 odnosi s- na 37ra0an0- lokalniC vari0a7li.
Ukoliko .n.tar m-tod- prist.pamo vari0a7li, onda s- prov0-rava 0- li prv-nstv-no
d-klarirana . m-todi. T-k nakon to!a s- prov0-rava d-klaraci0a .n.tar klas-.
,l-dano s ra3in- klas-, lokalnim vari0a7lama .n.tar m-toda n- mo6-mo prist.pi:
ti i3vana.
odr."0- va6-n0a vari0a7l- ko0a 0- r-f-r-nca na o70-kt id-nti"no 0- kao i kod osta:
liC vari0a7li. R-f-r-nca n-sta0- na kra0. podr."0a va6-n0a. Ra3lika 0- 0-dino .
tom- /to s- 7ri/- r-f-r-nca na o70-kt, ali n- i sam o70-kt ko0i i dal0- 3a.3ima m-:
mori0. ra".nala.
: 4< :
*# Kon'tr,ktori
(onstr.ktori s. pos-7n- vrst- m-toda ko0- s- po3iva0. prilikom kr-iran0a o70-ka:
ta, odnosno prilikom inici0ali3aci0- o70-kta.
Ra ra3lik. od m-toda, konstr.ktori9
.vi0-k ima0. isti na3iv kao i na3iv klas-
n-ma0. povratni tip
po3iva0. s- iskl0."ivo . tr-n.tk. kr-iran0a o70-kta
sl.6- 3a inici0ali3aci0. nav-d-no! o70-kta.
(onstr.ktori s- mo!. pisati 7-3 param-tara i tada !ovorimo o podra3.mi0-vanim
konstr.ktorima.
(onstr.ktora . klasi mo6- 7iti vi/-, a m-5.so7no s- ra3lik.0. pr-ma tipovima
param-tara.
*#"# Kreiranje kon'tr,ktora
(onstr.ktori s- kr-ira0. .n.tar klas- i po pr-por.ci s- pi/. pri0- ostaliC m-toda
. klasi.
rim0-r9
public class %soba {
public %soba() { //konstruktor
}
public static void main(String[] args) {
Osoba osoba # ne) Osoba()%
}
}
U nav-d-nom prim0-r. &so7a8> L M 0- podra3.mi0-vani konstr.ktor, a n-K &so7a8>
0- po3iv to! konstr.ktora.
(onstr.ktori ima0. id-nti"na im-na pa s- ra3lik.0. pr-ma tipovima param-tara.
rim0-r9
public class Osoba {
// podra&umijevani konstruktor
public Osoba() {
}
// konstruktor
public Osoba(String ime8 String pre&ime) {
}
// konstruktor
public Osoba(String ime8 String pre&ime8 String adresa){
}
: 4A :
public static void main(String[] args) {
Osoba osoba # ne) Osoba()%
}
}
Ti0-la nav-d-niC konstr.ktora s. pra3na. Uo7i"a0-no s- . konstr.ktor- 3apis.0-
ono /to 7i tr-7alo i3vr/iti odmaC prilikom kr-iran0a o70-kata.
)aim-, s o73irom da s- radi o inici0ali3aci0i o70-kata, t0. davan0. po"-tniC vri0-d:
nosti 3a t- o70-kt-, o7i"no s- kro3 param-tr- konstr.ktora prosl0-5.0. t- po"-tn-
vri0-dnosti.
Ukoliko s- 3a o70-kt klas- &so7a postav- vari0a7l- im-, pr-3im- i adr-sa kao svo0 :
stva nav-d-no! o70-kta 8vari0a7l- o70-kta>,
B
onda s- kro3 konstr.ktor- prosli0-5-:
n- vri0-dnosti mora0. postaviti . nav-d-n- vari0a7l- o70-kta.
rim0-r9
public class Osoba {
String ime8 pre&ime8 adresa%
// podra&umijevani konstruktor
public Osoba() {
}
// konstruktor
public Osoba(String ime(8 String pre&ime() {
ime # ime(%
pre&ime # pre&ime(%
}
// konstruktor
public Osoba(String ime(8 String pre&ime(8 String adresa(){
ime # ime(%
pre&ime # pre&ime(%
adresa # adresa(%
}
public static void main(String[] args) {
Osoba osoba # ne) Osoba()%
}
}
/ada+i.
+0 1reira/te klas' so3a kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &ro!
gra%0
)0 1reira/te klas' .o3itel s konstr'ktori%a ko/i i%a/' &ara%etre:
! 3ez &ara%etara 2&odraz'%i/evani konstr'ktor4
! s &ara%etro% ,tring ti&+
! s &ara%etri%a ,tring ti&+( long 3ro/+0
B
Vidi po!lavl0-9 Vari0a7l- o70-kta
: 4B :
60 - klasi .o3itel kreira/te vari/a3le o3/ekta ti& i 3ro/ te i% kroz konstr'ktore dodi/eli !
te inici/alne vri/ednosti0
*#)# o&i!i kon'tr,ktora
(onstr.ktori s- po3iva0. prilikom kr-iran0a o70-kta. ritom tr-7a voditi ra".na o
tom- da s- svakom konstr.ktor. prosli0-di ispravan tip i r-dosli0-d vri0-dnosti.
r-ma pr-tCodnom prim0-r., po3vani s. konstr.ktori kod kr-iran0a o70-kata9
public static void main(String[] args) {
Osoba osoba # ne) %soba()%
Osoba osoba( # ne) %soba(&'na&(&)arkovi*&)%
Osoba osoba/ # ne) %soba(&'na&(&)arkovi*&(
&+ukovarska ,-&)%
}
(od kr-iran0a o70-kta oso7a po3iva s- podra3.mi0-vani konstr.ktor &so7a8>.
(od kr-iran0a o70-kta oso7a% po3iva s- konstr.ktor &so7a81trin! im-%, 1trin!
pr-3im-%>. I3vr/ava0. s- nar-d7- dan- . ti0-l. konstr.ktora9
ime # ime(% // ime # -5na-
pre&ime # pre&ime(% // pre&ime # -Barkovi!-
!d0- s- o70-kt. oso7a% pridr.6.0. vri0-dnosti E*naE i E2arkoviE.
(od kr-iran0a o70-kta oso7a# po3iva s- konstr.ktor &so7a81trin! im-%, 1trin!
pr-3im-%, 1trin! adr-sa%>. I3vr/ava0. s- nar-d7- dan- . ti0-l. konstr.ktora9
ime # ime(% // ime # -5na-
pre&ime # pre&ime(% // pre&ime # -Barkovi!-
adresa # adresa(% // adresa # -Tukovarska F$-
!d0- s- o70-kt. oso7a# pridr.6.0. vri0-dnosti E*naE, E2arkoviE i EV.kovarska
=AE.
(ada s- . klasi &so7a kr-ira dodatna m-toda9
void ispis0odataka(){
S+stem,out,println(ime4- -4pre&ime4- -4adresa)%
}
po3ivom nav-d-n- m-tod- 3a svaki o70-kt do7iva0. s- ra3li"iti ispisi9
osoba,ispis0odataka()%
osoba(,ispis0odataka()%
osoba/,ispis0odataka()%
: @$ :
rim0-r9
public class Ciljeska {
static int rbr # >%
int redniCroj # >%
String datum # --%
String biljeska # --%
public Ciljeska(String biljeska() {
rbr44%
redniCroj # rbr%
biljeska # biljeska(%
}
public Ciljeska(String datum(8 String biljeska() {
rbr44%
redniCroj # rbr%
datum # datum(%
biljeska # biljeska(%
}
void ispisCiljeski(){
S+stem,out,println(redniCroj4-, -4datum4- -4
biljeska)%
}
public static void main(String[] args) {
Ciljeska biljeska # ne) Ciljeska(->S,>/,/>((-8-.spit i&
kolegija OO* .-)%
Ciljeska biljeska( # ne)
Ciljeska(->;,>@,/>((-8-Ie&ervacija sobe-)%

biljeska,ispisCiljeski()%
biljeska(,ispisCiljeski()%
}
}
U nav-d-nom prim0-r. d-klariran- s. tri vari0a7l- o70-kta9 r-dni'ro0, dat.m, 7i :
l0-ska. 1vaki s- o70-kt pr-ko konstr.ktora inici0ali3ira na vlastit- vri0-dnosti.
Vari0a7la r7r 0- vari0a7la klas- ko0a s- mi0-n0a n-ovisno o o70-kt., t0. pri svakom
po3iv. konstr.ktora.
/ada+i.
+0 -&ot&'nite klas' so3a( kao ' navedeno% &ri%/er'( o3/ekti%a oso3a( oso3a+ i
oso3a)0 Doda/te i %etod' is&isPodataka240 1o%&ilira/te i &okrenite &rogra%0 Pro%o!
trite rez'ltat is&isa0
)0 - klasi so3a &ro%i/enite &oetne vri/ednosti za vari/a3le o3/ekta i &ro%otrite re!
z'ltat0
: @% :
60 1reira/te klas' :il/eska kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &ro!
gra%0 Pro%otrite rez'ltat is&isa0
80 - glavno/ %etodi klase :il/eska kreira/te o3/ekt:
:il/eska 3 F neG :il/eska24H
1o%&ilira/te &rogra% i &rov/erite ko/a se gre5ka /avl/a0 Za5toI 1reira/te /o5 /edan
konstr'ktor ko/i% ete iz3/ei gre5k'0
@0 - glavno/ %etodi klase .o3itel( iz zadatka ' &rethodno% &oglavl/'( kreira/te
o3/ekte ko/i%a e se &ozvati konstr'ktori0 Doda/te is&is za vri/ednosti vari/a3li ti& i
3ro/ &o/edinih o3/ekata0 Is&is na&ravite ' glavno/ %etodi ili kreira/te dodatn' %etod'
i &ozovite /e
*#*# Klj,7na rije7 thi'
(l0."na ri0-" this koristi s- .n.tar po0-din- klas-, kada s- 6-li na!lasiti da s-
radi o tr-n.ta"nom o70-kt., odnosno to 0- r-f-r-nca na tr-n.ta"ni o70-kt.
rim0-r9
public class *ocka {
int J% // varijabla objekta
int +% // varijabla objekta
public *ocka(int J8 int +) {
tDis,J # J%
tDis,+ # +%
}
public static void main(String[] args) {
*ocka tocka # ne) *ocka(@8<)%
S+stem,out,println(-J#-4tocka,J4- +#-4tocka,+)%
}
}
U konstr.ktor. klas- Tocka param-tri s. na3vani J i D. U ovom sl."a0. koristimo
ri0-" tCis kako 7ismo na!lasili to da 0-dan J 8tCis.J> pripada vari0a7li o70-kta, a
dr.!i J pripada param-tr. konstr.ktora. )a ova0 na"in mo6-mo koristiti id-nti":
n- na3iv- lokalniC vari0a7li i vari0a7li o70-kta.
tCis.J P o3na"ava vari0a7l. > tr-n.ta"no! o70-kta
tCis.D : o3na"ava vari0a7l. ? tr-n.ta"no! o70-kta
Ukoliko vari0a7lama o70-kta prist.pamo kro3 !lavn. m-tod. ili 7ilo ko0. dr.!.
klas., onda n- mo6-mo koristiti tCis. )ar-d7a9
S+stem,out,println(-J#-4t.is,J4- +#-4t.is,+)%
ko0a s- po3iva i3 main m-tod- n- mo6- s- pisati . ovom o7lik. 0-r 7i to 3na"ilo
isto /to i9
: @# :
S+stem,out,println(-J#-4J4- +#-4+)%
Vari0a7lama J i D n- mo6-t- prist.piti dir-ktno n-!o pr-ko o70-kta. 2o6-mo pisa:
ti9
S+stem,out,println(-J#-4tocka,J4- +#-4tocka,+)%
U klasi Tocka mo6-mo kr-irati m-tod. pomakni]8>9
void pomakniO(int i){
J 4# i%
}
Ukoliko prist.pamo vari0a7li J i3 m-tod- t- 6-limo na!lasiti da s- radi o vari0a7li
o70-kta, pi/-mo9
tDis,J 4# i%
U ovom sl."a0. to 0- n-potr-7no 0-r .n.tar m-tod- pomakni]8> ni0- d-klarirana
niti 0-dna lokalna vari0a7la na3iva J, pa - s- . nar-d7i9
J 4# i%
J odnositi na vari0a7l. o70-kta.
(l0."nom ri0-"0. tCis mo6-mo .n.tar klas- prist.piti i vari0a7lama i m-todama
o70-kta.
Tako5-r, posto0- i po3ivi konstr.ktora ri0-"0. tCis8>.
U klasi Tocka kr-iramo 0o/ 0-dan konstr.ktor9
public *ocka() {
tDis((8()%
}
&vd0- 0- po3ivom tCis8%,%> na!la/-no da s- . isto0 klasi po3iva dr.!i konstr.ktor
Tocka8int J, int D> ko0-m s- prosl0-5.0. vri0-dnosti %,%.
U klasi 'il0-ska i3 pr-tCodno! po!lavl0a9
public Ciljeska(String biljeska() {
rbr44%
redniCroj # rbr%
biljeska # biljeska(%
}
public Ciljeska(String datum(8 String biljeska() {
rbr44%
redniCroj # rbr%
datum # datum(%
: @4 :
biljeska # biljeska(%
}
konstr.ktori s- mo!. i3m0-niti na sl0-d-i na"in9
public Ciljeska(String biljeska() {
tDis(--8 biljeska()%
}
public Ciljeska(String datum(8 String biljeska() {
rbr44%
redniCroj # rbr%
datum # datum(%
biljeska # biljeska(%
}
/ada+i.
+0 1reira/te klas' Tocka kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &ro!
gra%0 Pro%otrite is&is0 1reira/te /o5 /edan o3/ekt klase Tocka0 1reira/te %etod' is&i!
si1oordinate24 ' ko/o/ 3i se &rikazivala vri/ednost vari/a3li A i "0 Pozovite naveden'
%etod' za o3a o3/ekta klase Tocka0 - %etodi is&ro3a/te &rist'& vari/a3la%a A i "
&reko this i 3ez this &a za3il/e7ite rez'ltate0
)0 - klasi Tocka doda/te %etod' &o%akniJ24 i is&ro3a/te navedeni &ri%/er0
60 - klasi so3a iz &rethodnog &oglavl/a iz%i/enite nazive lokalnih vari/a3li i%e+ '
i%e( &rezi%e+ ' &rezi%e itd0 Is&ita/te tre3a li dodati kl/'n' ri/e this0 1o%&ilira/te i
&okrenite &rogra%0 Pro%otrite rez'ltat0
@. - klasa%a :il/eska i .o3itel iz%i/enite nazive lokalnih vari/a3li i &ro%otrite rez'l!
tat
: @@ :
-# akiranje kla'a
ak-ti omo!..0. !r.piran0- klasa po n-ko0 lo!ici.
(lasa ko0a s- sm0-/ta . n-ki pak-t ima na po"-tk. kl0."n. ri0-" packa!- s na3i:
vom pak-ta9
package mojpaket%
&vom nar-d7om o3na"-na 0- pripadnost klas- danom pak-t.. Ukoliko dr.!a"i0-
ni0- nav-d-no, pak-ti s- spr-ma0. . standardni pak-t.
ak-ti s- korist- i da 7i s- odi0-lili isti na3ivi klasa. rim0-r 0- klasa 'ro09
package racun%
class Croj {
// naredbe
}
package banka%
class Croj {
// naredbe
}
(lasa 'ro0 mo6- posto0ati . o7a pak-ta 0-r pak-ti .0-dno i fi3i"ki od0-l0.0. po3ici0-
na ko0ima s- klas- nala3-.
U prvom sl."a0. klasa s- spr-ma . poddir-ktori09 rac.nT'ro0.0ava.
(od kompiliran0a po3iva s-9
javac racunUCroj,java
(od i3vr/avan0a9
java racun,Croj
U dr.!om sl."a0. klasa s- spr-ma . poddir-ktori09 7ankaT'ro0.0ava.
(ompiliran0-9
javac bankaUCroj,java
: @= :
a i3vr/avan0-9
java banka,Croj
Dakl-, . prvom sl."a0. klasa pripada pak-t. rac.n t- s- prilikom po3iva mo6-
pisati rac.n.'ro0. U dr.!om sl."a0. klasa pripada pak-t. 7anka t- s- prilikom
po3iva mo6- pisati 7anka.'ro0.
ak-ti s- mo!. or!ani3irati Ci0-rarCi0ski9 lo!i"ka or!ani3aci0a . pak-t- i potpak-t-
od!ovara fi3i"ko0 or!ani3aci0i . dir-ktori0- i poddir-ktori0-.
1tandardn- Javin- klas- or!ani3iran- s. . n-koliko pak-ta i potpak-ta. &snovni
pak-ti s.9
0ava.lan! 0ava.appl-t 0ava.aKt
0ava.7-ans 0ava.io 0ava.matC
0ava.n-t 0ava.nio 0ava.rmi
0ava.s-c.ritD 0ava.scl 0ava.t-Jt
0ava..til
Ukoliko 6-limo koristiti klas- i3 tiC pak-ta, moramo napraviti .kl0."ivan0- po0-di:
n- klas- i3 tiC pak-ta . na/. klas.. )a prim0-r9
import java,util,Iandom%
import java,util,5rra+Gist%
)a ta0 na"in po0-dnostavl0.0-mo po3iv- tiC klasa. Um0-sto da kod kr-iran0a o70-k:
ta klas- Random pi/-mo9
java,util,Iandom rnd # ne) java,util,Iandom()%
.koliko pak-t . ko0-m s- nala3i klasa Random .kl0."imo . na/. klas., mo6-mo
pisati9
Iandom rnd # ne) Iandom()%
&dnosno9
package racun%
import java,util,Iandom%
class Croj {
: @? :
// naredbe
public static void main(String[] args) {
Iandom rnd # ne) Iandom()%
}
}
U pisan0. pak-ta .vi0-k prvo id- postavl0an0- pak-ta 8packa!->, a nakon to!a
.kl0."ivan0- ostaliC pak-ta . klas. 8import>.
)ar-d7. import mo6-mo koristiti i na sl0-d-i na"in9
import java,lang,*%
pri "-m. N 3am0-n0.0- na3iv- sviC klasa i3 to! pak-ta.
Ukoliko 6-limo koristiti klas. 'ro0 i3 pak-ta rac.n, onda - s- nav-d-na klasa
.kl0."iti na na"in9
import racun,Croj%
/ada+i.
+0 1reira/te klase :ro/ kao ' navedeni% &ri%/eri%a0 1o%&ilira/te i &okrenite &rogra!
%e0 Prov/erite na ko/o/ se #iziko/ lokaci/i nalaze ko%&ilirane klase0
)0 1reira/te klas' 1o%&leksni0 Na&ravite i%&ort klase rac'n0:ro/0 1o%&ilira/te i &o!
krenite &rogra%0
: @< :
0# B,!anje objekata
0#"# Ni&o!i
)i3 0- s-kv-nca -l-m-nata isto! tipa s to"no odr-5-nom d.l0inom. )i3 sadr6i vri :
0-dnosti primitivniC tipova ili o70-kt-. D.l0ina ni3a s- postavl0a kod kr-iran0a i na:
kon to!a s- vi/- n- mi0-n0a. )i3 s- d-finira pr-ko r-f-r-nc- .3 ko0. id. .!lat- 3a:
!rad-.
rim0-r9
int brojevi []%
ili
int [] brojevi%
U prim0-r. s. 7ro0-viGH r-f-r-nca na ni3 c0-lo7ro0no! tipa 8int>
9
brojevi [] # ne) int [<]%
U3 r-f-r-nc. 0- kr-iran ni3 c0-lo7ro0niC vri0-dnosti 8int> d.l0in- @.
lanovi ili -l-m-nti ni3a navod- s- s im-nom ni3a .3 ko0- s- stavl0a0. .!lat- 3a:
!rad-, a .n.tar n0iC s- navod- ind-ksi ko0i po"in0. od $.
Ukoliko 0- v-li"ina ni3a n, onda ind-ksi id. do n:%.
&vako kr-iran ni3 odmaC 0- i inici0ali3iran. El-m-nti do7iva0. po"-tn- vri0-dnosti
. sklad. s tipom podatka.
U !orn0-m prim0-r. -l-m-nti ni3a s- a.tomatski inici0ali3ira0. na podra3.mi0-va:
n- vri0-dnosti9
brojevi[>] # >%
brojevi[(] # >%
brojevi[/] # >%
brojevi[@] # >%
Dr.!i na"in d-klaraci0- i dod0-l0ivan0a inici0alniC vri0-dnosti ni3. 0- sl0-d-i
9
int brojevi/ [] # {(8/8@8<8F}%
Inici0aln- vri0-dnosti s- navod- . viti"astim 3a!radama LM.
: @A :
&vo 7i s- mo!lo 0o/ pisati i kao9
int brojevi/ [] # ne) int [F]%
brojevi/ [>] # (%
brojevi/ [(] # /%
brojevi/ [/] # @%
brojevi/ [@] # <%
brojevi/ [<] # F%
(od ni3a ni0- dop./t-no prist.pan0- -l-m-ntima i3van 3adaniC !ranica. Ukoliko
stavimo9
brojevi/[F] # ?%
!-n-rirat - s- !r-/ka9
'rra/0nde1%ut%2ounds31ception
(>
Vari0a7la ni3a ko0a odr-5.0- d.l0in. po0-dino! ni3a 0- l-n!tC. &7i"no pi/-mo9
brojevi/,lengtD
kako 7ismo do7ili v-li"in. ni3a.
rim0-ri 3a ni3 karakt-ra9
cDar abeceda []# {L5L8LCL8LRL8L7L8LVL8LWL8L9L}%
cDar &nak [] # ne) cDar [F]%
&nak [>] # LmL% &nak [(] #LXL% &nak [/] #L4L%
&nak [@] #L(L% &nak [<] #L)L%
rim0-ri 3a ni3 strin!ova9
String boje [] # {-&elena-8 -uta-8 -crvena-8 -plava-}%
String povrce [] # ne) String [@]%
povrce [>] # -blitva-%
povrce [(] # -salata-%
povrce [/] # -maDune-%
(od prist.pan0a n-kom -l-m-nt. ni3a tr-7ali 7ismo 3nati na ko0o0 0- po3ici0i ta0
-l-m-nt ni3a, odnosno dovol0no 0- 3nati ind-ks 3a ta0 -l-m-nt.
%$
I3.3-ci s. o70a/n0-ni . 3as-7nom po!lavl0.
: @B :
S+stem,out,println(-0ovr!e A -4povrce [>])%
S+stem,out,println(-0ovr!e A -4povrce [(])%
S+stem,out,println(-0ovr!e A -4povrce [/])%
&sim primitivniC tipova podataka, . ni3ov- mo6-mo sm0-/tati i o70-kt-, to"ni0-
r-f-r-nc- na o70-kt-.
rim0-r9
p.7lic class *.to L
String tip%
public 5uto(String tip) {
tDis,tip # tip%
}
void ispisi*ip(){
S+stem,out,println(-*ip je -4tip)%
}
public static void main(String[] args) {
5uto n5uto [] # ne) 5uto [@]%
n5uto [>] # ne) 5uto(-Ienault-)%
n5uto [(] # ne) 5uto(-Word-)%
n5uto [/] # ne) 5uto(-3issan-)%
}
(r-iran 0- ni3 n*.to GH tipa *.to v-li"in- 4.
Ra svaki -l-m-nt ni3a kr-iran 0- pripadni o70-kt klas- *.to. U tom 0- sl."a0. sva:
ki -l-m-nt ni3a 0-dna r-f-r-nca na o70-kt klas- *.to.
Ukoliko n-kom -l-m-nt. ni3a ni0- dodi0-l0-n o70-kt, podra3.mi0-vana vri0-dnost
0- n.ll.
rim0-r9 .koliko pro/irimo ni3 i3 pr-tCodno! prim0-ra na9
5uto n5uto [] # ne) 5uto [<]%
odra3.mi0-vana vri0-dnost 3a n*.to G4H F n.ll, dok s- n- kr-ira pripadni o70-kt.
(od ispisa, 3a po0-dini o70-kt po3iva0. s- m-tod-9
S+stem,out,println(-*ip je -4n5uto[>],tip)%
S+stem,out,println(-*ip je -4n5uto[(],tip)%
&dnosno9
n5uto[>],ispisi*ip()%
U sl."a0. 3aCt0-va 3a ispisom9
S+stem,out,println(-*ip je -4n5uto[@],tip)%
: =$ :
Ukoliko 0- n*.toG4H F n.ll, t0. n- posto0i o70-kt, 0avit - s- !r-/ka9
4ull5ointer31ception
/ada+i.
+0 - &roizvol/no/ klasi testira/te nizove s &ri%itivni% ti&ovi%a &odataka kao ' &ri%/e!
ri%a0 Prov/erite na ko/i se nain %o7e generirati gre5ka Drra"IndeA't#:o'nd!
sKAce&tion0
)0 1reira/te klas' D'to kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &rogra%0
Pro%otrite is&is0 Lenerira/te dva ti&a gre5ke: Drra"IndeA't#:o'ndsKAce&tion i
N'llPointerKAce&tion0
60 1reira/te klas' :ro/ s konstr'ktoro% ko/i &rihvaa /edan &ara%etar ti&a do'3le0 -
glavno/ %etodi kreira/te niz ti&a do'3le s 3ro/evi%a: +( +0))( )088( 60CC( 80BB( C0 Ta!
ko<er kreira/te niz o3/ekata ti&a :ro/0 3/ekte kreira/te &re%a navedeni% vri/ednos!
ti%a0 Is&i5ite d'l/ine o3a/' nizova te ele%ente o3a/' nizova0
0#)# Kontejneri
(ont-0n-ri s- korist- 3a ".van0- o70-kata, to"ni0- r-f-r-nci na o70-kt-. U t. svrC.
mo!. s- koristiti i ni3ovi.
&snovni pro7l-m kod ni3a 0- to"no d-finirana i n-prom0-n0iva v-li"ina. (ako n-
mo6-mo .vi0-k 3nati koliko -mo o70-kata morati sm0-stiti . ni3, mo6- nam s-
do!oditi da ni3 8pa pr-ma tom- i m-mori0ski prostor> ostan- n-iskori/t-n ili da, s
dr.!- stran-, postan- n-dovol0an.
Ra r0-/avan0- ovo! pro7l-ma korist- s- kont-0n-rsk- klas-. rilikom sm0-/tan0a
o70-kata . kont-0n-r v-li"ina kont-0n-ra n- mora 7iti .napri0-d d-finirana. Tim-
s- proi3vol0no v-liki 7ro0 o70-kata mo6- sm0-stiti . kont-0n-r.
&snovni tipovi kont-0n-rskiC klasa s. List, 1-t, 2ap i d.-.-.
1 o73irom da 0- t-matika v-3ana .3 kont-0n-r- prili"no ops-6na, ovd0- - s- dati
samo kratk- napom-n- v-3an- .3 kori/t-n0- kont-0n-ra.
1v- kont-0n-rsk- klas- nala3- s- . standardnom Java *I:0.9 pak-t. 0ava..til.
)a po"-tk. klas- . ko0o0 s- koristi 7ilo kakva kont-0n-rska klasa morat - s-
.kl0."iti nav-d-ni pak-t
9
import java,util,*%
: =% :
0#)#"# ja!a#,til#Ve+tor
rim0-r9
import java,util,Tector%
public class 5uto {
String tip%
public 5uto(String tip) {
tDis,tip # tip%
}
void ispisi*ip(){
S+stem,out,println(-*ip je -4tip)%
}
public static void main(String[] args) {
5uto auto( # ne) 5uto(-Word-)%
5uto auto/ # ne) 5uto(-3issan-)%
5uto auto@ # null%

Tector v # ne) Tector()%
v,addVlement(auto()%
v,addVlement(auto/)%
v,addVlement(auto@)%

S+stem,out,println(v,si&e())%
5uto a # (5uto)v,element5t(()%
a,ispisi*ip()%
}
}
Da 7ismo koristili kont-0n-rsk. klas. V-ctor 3a sm0-/tan0- o70-kata, prvo tr-7a
kr-irati o70-kt tipa V-ctor9
Tector v # ne) Tector()%
V-li"ina s- mo6- i n- mora inici0ali3irati.
U v s- doda0. r-f-r-nc- a.to%, a.to#, a.to4 ko0- s- odnos- na o70-kt- klas- *.to.
Dodavan0- s- mo6- i3vr/iti m-todom addEl-m-nt8> klas- V-ctor9
v,addVlement(auto()%
rilikom to! dodavan0a, r-f-r-nca tipa *.to 8a.to%> konv-rtira s- . vi/i tip 80a:
va.lan!.&70-ct>.
%%

Dodavan0- -l-m-nata . kont-0n-r V-ctor id- po r-d., s tim- da n-k- m-tod- omo:
!..0. dodavan0- -l-m-nata na to"no odr-5-no m0-sto. El-m-nti . kont-0n-r.
%%
1vo5-n0- na vi/- 0- karakt-ristika v-3ana .3 konc-pt nasl0-5ivan0a. Vi/- o tom- . po!lavl0. o
nasl0-5ivan0..
: =# :
ra".na0. s- od $:t- po3ici0-. V-li"in. kont-0n-ra mo6-mo odr-diti m-todom si3-8>9
v,si&e()%
Ind-ksi -l-m-nata ko0i o3na"ava0. po3ici0. id. od $ do v.si3-8>:%.
U V-ctor mo6-mo dodati o70-kt 7ilo ko0-! tipa. )-ma nikakv- prov0-r-. 2-5.tim,
pr-por.ka 0- da s- doda0- samo 0-dan tip podataka, radi lak/-! "itan0a -l-m-nata
i3 V-ctora. )ar-d7a9
v,element5t(()%
vraa -l-m-nt na5-n na po3ici0i s ind-ksom %. '.d.i da s- prilikom sm0-/tan0a
o70-kata 8r-f-r-nci> . V-ctor vr/ila konv-r3i0a na vi/i tip, . "itan0. o70-kata 8r-f-:
r-nci> vraa s- na3ad ta0 vi/i tip pa moramo napraviti i3ri"it. konv-r3i0. o70-kta
8r-f-r-nc-> na i3vorni tip.
I&ri7ita kon!er&ija ;t?%e +a'ting< radi s- sli"no kao i kod primitivniC tipova po:
dataka9
5uto a # (5uto)v,element5t(()%
(lasa . ko0. s- 6-li i3vr/iti konv-r3i0a pi/- s- . okr.!lim 3a!radama 8*.to>.
(lasa V-ctor s- . novi0im v-r3i0ama Jav- man0- koristi. (od i3rad- pro!rama kori:
/t-n0- klas- V-ctor mo6- s- kompl-tno 3ami0-niti novi0om klasom *rraDList.
/ada+i.
+0 1reira/te klas' D'to kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &rogra%0
Pro%otrite is&is0 -z%ite i ostale ele%ente stavl/ene ' konte/ner klase Vector te &ozo!
vite %etod' is&isiTi&240 Pro%otrite /avl/a li se ko/a gre5ka i za5to0
)0 1reira/te klas' -lica s konstr'ktoro% ko/e% se &rosl/e<'/e ,tring naziv0 - klasi
doda/te %etod' is&isiNaziv24 ko/a radi is&is naziva 'lice0 - glavno/ %etodi kreira/te
nekoliko o3/ekata klase -lica i re#erence doda/te ' konte/ner klase Vector0 ,vak' od
re#erenci izv'cite iz konte/nera i za svak' &ozovite %etod' is&isiNaziv240
: =4 :
0#)#)# ja!a#,til#Arra?Li't
(lasom *rraDList radi s- sli"no kao i klasom V-ctor. 1v- nav-d-no . pr-tCodnom
po!lavl0. vri0-di i 3a klas. *rraDList.
rim0-r9
import java,util,5rra+Gist%
public class 5uto {
String tip%
public 5uto(String tip) {
tDis,tip # tip%
}
void ispisi*ip(){
S+stem,out,println(-*ip je -4tip)%
}
public static void main(String[] args) {
5uto auto( # ne) 5uto(-Word-)%
5uto auto/ # ne) 5uto(-3issan-)%
5uto auto@ # null%

5rra+Gist a # ne) 5rra+Gist()%
a,add(auto()%
a,add(auto/)%
a,add(auto@)%

S+stem,out,println(a,si&e())%
5uto auto # (5uto) a,get(()%
auto,ispisi*ip()%
}
}
Da 7i s- r-f-r-nc- na o70-kt- sm0-stil- . kont-0n-r *rraDList, prvo s- kr-ira
o70-kt klas- *rraDList9
5rra+Gist a # ne) 5rra+Gist()%
2-todom add8> doda0. s- -l-m-nti . kont-0n-r9
a,add(auto()%
I . klasi V-ctor i . klasi *rraDList radimo i3ri"it. konv-r3i0. 8tDp- castin!> poda:
taka pri .3iman0. -l-m-nata i3 kont-0n-ra9
5uto auto # (5uto) a,get(()%
: =@ :
I3ri"it. konv-r3i0. mo6-mo i370-i tako da . kont-0n-r spr-mamo samo 0-dan tip
podataka. Ukoliko 6-limo na!lasiti da -mo . kont-0n-r spr-mati samo 0-dan tip
podataka, onda pi/-mo9
5rra+Gist Y5utoZ a # ne) 5rra+Gist Y5utoZ()%
U tom 0- sl."a0. v- .napri0-d on-mo!.-no spr-man0- o70-kta 8r-f-r-nc-> n-k-
dr.!- klas- . ta0 kont-0n-r. Tipovi d-finirani na ta0 na"in na3iva0. s- generi7ki
ti%o!i.
U sl."a0. .3iman0a r-f-r-nci na o70-kt- i3 kont-0n-ra, pi/-mo9
5uto auto # a,get(()%
/ada+i.
+0 - klasi D'to doda/te konte/ner Drra"List kao ' navedeno% &ri%/er'0 1o%&ilira/te
i &okrenite &rogra%0 Pro%otrite is&is0
)0 - klasi D'to kreira/te generiki konte/ner '%/esto o3inog te &rov/erite tre3a li se
na&raviti izriita konverzi/a 2t"&e casting4 kod 'zi%an/a re#erenci iz konte/nera0
60 - klasi -lica 2zadatak ' &oglavl/' /ava0'til0Vector4 za%i/enite dodavan/e ' konte/!
ner Vector dodavan/e% ' konte/ner Drra"List0 ,vak' od re#erenci izv'cite iz konte/!
nera i za svak' &ozovite %etod' is&isiNaziv240 Testira/te i generiki konte/ner0
0#)#*# ja!a#,til#Ha'hSet
+asC1-t 0- kont-0n-r 3a spr-man0- o70-kata ko0i n- dop./ta dvostr.ki .nos. Uko:
liko s- 6-l- spr-miti dvostr.ki podaci, to s- n-- moi napraviti. U sl."a0. .nosa
n.ll vri0-dnosti, dop.stit - s- samo 0-dan .nos. (arakt-ristika klas- +asC1-t ta:
ko5-r 0- da s- podaci .n.tra sm0-/ta0. kao . sk.p, /to 3na"i da por-dak -l-m-:
nata ni0- 7itan.
rim0-r9
import java,util,=asDSet%
public class 'ontakt {
String ime8 pre&ime8 email%
=asDSet broj*el # ne) =asDSet()%
'ontakt(String ime8 String pre&ime8 String email) {
tDis,ime # ime%
tDis,pre&ime # pre&ime%
tDis,email # email%
}
void dodajCroj*el(String broj){
: == :
S+stem,out,println(-7odan -4broj4- -4broj*el,add(broj))%
}
void ispisiCrojCrojeva(){
Object s [] # broj*el,to5rra+()%
S+stem,out,println(s,lengtD)%
}
public static void main(String[] args) {
'ontakt k # ne) 'ontakt(-0ero-8--8 --)%
k,dodajCroj*el(->;F (((///-)%
k,dodajCroj*el(->;( @<F@<F-)%
k,dodajCroj*el(->;F (((///-)%
k,ispisiCrojCrojeva()%
}
}
Unos -l-m-nata . +asC1-t kont-0n-r dan 0- m-todom add8>9
broj*el,add(broj)%

2-toda add8> vraa vri0-dnost tr.- ili fals-, ovisno o tom- 0- li .sp0-/no naprav:
l0-n .nos ili ni0-. U prim0-r. 0- postavl0-n ispis9
1Dst-m.o.t.println8EDodan EW7ro0WE EW7ro0T-l.add87ro0>>I
kako 7i s- 3a svaki prosli0-5-ni 7ro0 mo!la ispisati vri0-dnost tr.- ili fals-, ovisno
o tom- 0- li -l-m-nt dodan . kont-0n-r ili n-.
U prim0-r. klas- (ontakt prosli0-5-n- s. tri vri0-dnosti tipa 1trin! kont-0n-r.
+asC1-t. 2-5.tim, 7it - dodana samo dva -l-m-nta . kont-0n-r. Tr-a vri0-d:
nost 0- id-nti"na prvo0 pa s- n-- dodati . kont-0n-r.
El-m-nti i3 kont-0n-ra +asC1-t n- mo!. s- dir-ktno i3v.i, kao /to 0- to 7io sl.:
"a0 s kont-0n-rima V-ctor i *rraDList, n-!o s- korist- dr.!i na"ini. J-dan od n0iC
0- po3iv m-tod- to*rraD8> ko0a -l-m-nt- i3 kont-0n-ra spr-ma . ni3 o70-kata klas-
&70-ct9
Object s [] # broj*el,to5rra+()%
I3 nav-d-no! ni3a mo!. s- i3v.i podaci tako da s- -l-m-nti ni3a konv-rtira0. na:
3ad . i3vorn. klas. i3ri"itom konv-r3i0om9
(String)s[>]
&dnosno, .koliko 7ismo 6-l0-li napraviti ispis9
S+stem,out,println((String)s[>])%
: =? :
Dr.!i na"in 3a i3vla"-n0- -l-m-nata i3 kont-0n-ra +asC1-t 0- pr-ko m-tod- it-ra:
tor8> ko0a -l-m-nt- spr-ma . o70-kt klas- It-rator9
.terator it # broj*el,iterator()%
(lasa It-rator ima m-tod. n-Jt8> ko0a vraa tr-n.ta"ni o70-kt i po3icionira s- na
sl0-d-i9
S+stem,out,println((String)it,neJt())%
/ada+i.
+0 1reira/te klas' 1ontakt kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &ro!
gra%0 ,&re%ite /o5 tri ele%enta ' Mash,et te &rov/erite /es' li s&re%l/eni0 1oliko na!
kon toga i%a 'k'&no ele%enata ' konte/ner' Mash,etI
)0 Na&ravite konverzi/' iz sk'&a Mash,et ' niz o3/ekata i ' o3/ekt klase Iterator0
Prist'&ite ele%enti%a iz /ednog i dr'gog sl'a/a te na&ravite is&ise0
60 - klasi D'to iz &rethodnih zadataka kreira/te konte/ner Mash,et i doda/te o3/ekte
klase D'to0 Prov/erite dvostr'ke 'nose0 1onvertira/te Mash,et ' niz o3/ekata i za
ele%ente &ozovite %etod' is&isiTi&240 1o/i% se redosli/edo% is&is'/' ele%entiI
0#)#-# ja!a#,til#Ha'h:a%
(arakt-ristika kont-0n-ra +asC2ap 0- mapiran0- 0-dniC o70-kata s dr.!ima. U
+asC2ap spr-ma0. s- po dvi0- vri0-dnosti od0-dnom9 kl0." i vri0-dnost. I kl0." i
vri0-dnost s. o70-kti. Uparivan0-m kl0."a i vri0-dnosti omo!.-no 0- lak/- pr-tra:
6ivan0- i i3vla"-n0- vri0-dnosti na t-m-l0. po3navan0a informaci0a o kl0."..
rim0-r9
import java,util,=asDBap%
public class 7r&ava {
public static void main(String[] args) {
=asDBap dr&ava # ne) =asDBap()%
dr&ava,put(-@>-8 -9r"ka-)%
dr&ava,put(-@(-8 -3i&o&emska-)%
dr&ava,put(-@/-8 -Celgija-)%
dr&ava,put(-@@-8 -Wrancuska-)%
dr&ava,put(-@<-8 -:panjolska-)%

S+stem,out,println(dr&ava,get(-@@-))%
: =< :
}
}
U o70-kt klas- +asC2ap spr-ma0. s- dva o70-kta 8k-D, val.->9
dr&ava,put(-@>-8 -9r"ka-)%
(l0." 0- E4$E, a vri0-dnost 0- E,r"kaE. rilikom tra6-n0a vri0-dnosti 3a kl0." E4$E9
dr&ava,get(-@>-)%
vratit - s- vri0-dnost E,r"kaE.
U klasi +asC2ap m-toda contains(-D8> prov0-rava posto0an0- po0-dino! kl0."a9
dr&ava,contains'e+(-@>-)%
a m-toda containsVal.-8> prov0-rava posto0an0- po0-diniC vri0-dnosti9
dr&ava,containsTalue(-=rvatska-)%
&70- m-tod- vraa0. tr.- ili fals- vri0-dnosti.
2-tod- k-D1-t8> i val.-s8> spr-ma0. kl0."-v- i vri0-dnosti odvo0-no . sk.p i kol-k:
ci0.9
Set s # dr&ava,ke+Set()%
Rollection c # dr&ava,values()%
/ada+i.
+0 1reira/te klas' Drzava kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &ro!
gra%0 Testira/te get24 %etod' za nekoliko kl/'eva te %etode contains1e"24 i contain!
sVal'e240
)0 - klasi Drzava na&ravite konverzi/' kl/'eva ' o3/ekt klase ,et i &rov/erite ko/e se
%etode %og' &ozvati iz klase ,et0 Pozovite neke od %etoda i na&ravite is&is0
60 - klasi Drzava na&ravite konverzi/' vri/ednosti ' o3/ekt klase $ollection i &rov/eri!
te ko/e se %etode %og' &ozvati iz klase $ollection0 Pozovite neke od %etoda i na&ra!
vite is&is0
: =A :
2# Kontrola %rogra('kog tijeka
2#"# $!jeti
(od i3vr/avan0a pro!rama pon-kad - 7iti potr-7no .sm0-riti ti0-k i3vr/avan0a
pro!rama . n-kom sm0-r. ili vi/- p.ta ponoviti n-k. nar-d7.. U tim sit.aci0ama
ti0-k pro!rama s- prila!o5ava pos-7no postavl0-nim .v0-tima. ostavl0-ni .v0-ti
mo!. i n- mora0. 7iti 3adovol0-ni.
Uv0-ti s. dani lo!i"kim t-stovima, odnosno r-3.ltat i3vr/avan0a .v0-ta 0- true ili
false.
Uv0-ti s- .vi0-k stavl0a0. . okr.!l- 3a!rad-.
rim0-r9
88a_7> [[ 8a_c>> P r-3.ltat 0- istinit 8tr.-> .koliko 0- a man0i od 7 ili c
8a`F7> P r-3.ltat 0- istinit 8tr.-> .koliko 0- a ra3li"it od 7
2#)# Grananja
Naredba i@5el'e
)ar-d7om i@5el'e pro!ramski s- ti0-k mo6- !ranati . vi/- di0-lova. &p-niti o7lik
i@5el'e !ranan0a 0- sl0-d-i9
iE (uvjet) {
// naredbe
} else iE (uvjet/) {
// naredbe
} else {
// naredbe
}
&vo !ranan0- mo6- 7iti . skra-nom o7lik. 8samo if>, malo d.6-m 8samo if:-ls->
ili s vi/- -ls- if di0-lova.
rim0-r9
int a#?%
i2 ((a[/) ## >) {
S+stem,out,println(a4- je djeljiv sa /-)%
}
U prim0-r. 0- dana prov0-ra 8aX#>FF$, odnosno aX# vraa ostatak di0-l0-n0a sa #.
&statak s- .spor-5.0- sa $, odnosno .koliko n-ma ostatka, .v0-t 0- istinit 8tr.->
pa s- i3vr/ava0. nar-d7- dan- . 7lok. LM. Ispis.0- s-9 E0- d0-l0iv sa #E.
: =B :
Ukoliko .v0-t ni0- 3adovol0-n 8fals->, n- .la3i s- . i3vr/avan0- 7loka nar-d7i.
rim0-r9
public class 5rtikl {
String siEra%
String na&iv%
double cijena%
double popust%
public 5rtikl(String siEra8 String na&iv8 double cijena8
double popust) {
tDis,siEra # siEra%
tDis,na&iv # na&iv%
tDis,cijena # cijena%
tDis,popust # popust%
}
void ispisiRijenu(){
double ukupnaRijena # cijenaMcijena*popust/(>>%
i2 (popust Z >){
S+stem,out,println(-0opust od -4popust4-[, -4
-Qkupna cijena je -4ukupnaRijena4- kn-)%
} else {
S+stem,out,println(-Rijena je -4ukupnaRijena4
- kn-)%
}
}
public static void main(String[] args) {
5rtikl artikl # ne)
5rtikl(-'(/M?S-8-\,'aput-8(/F>,>>8F)%
artikl,ispisiRijenu()%
}
}
U prim0-r. 0- if:-ls- !ranan0- dano . m-todi ispisiCi0-n.8>. rov0-rava s- ako 0-
pop.st v-i od $. Ukoliko 0-, .v0-t 0- istinit i i3vr/ava s- prvi 7lok nar-d7i9
S+stem,out,println(-0opust od -4popust4-[, -4
-Qkupna cijena je -4ukupnaRijena4- kn-)%
Ukoliko .v0-t ni0- istinit, id- s- na -ls- 7lok nar-d7i t- s- i3vr/ava9
S+stem,out,println(-Rijena je -4ukupnaRijena4- kn-)%
rim0-r9
public class 0lakat {
double dijagonala%

public void postavi7imen&ije(int J8 int +){
: ?$ :
dijagonala # BatD,sHrt(J*J 4+*+)%
}
public static void main(String[] args) {
0lakat plakat # ne) 0lakat()%
plakat,postavi7imen&ije(F>8(>>)%
i2 (plakat,dijagonala Y# $>)
S+stem,out,println(-Bali plakat-)%
else i2 ((plakat,dijagonala Z $>) ]]
(plakat,dijagonalaY#/>>))
S+stem,out,println(-0lakat srednjiD dimen&ija-)%
else i2 ((plakat,dijagonalaZ/>>) ]]
(plakat,dijagonalaY#F>>))
S+stem,out,println(-Teliki plakat-)%
else i2 (plakat,dijagonalaZF>>)
S+stem,out,println(-Ogroman plakat-)%
else
S+stem,out,println(-Ovo se nikad ne!e ispisatiX-)%
}
}
U ovom s- prim0-r. m-todom postaviDim-n3i0-8> postavl0a dim-n3i0a plakata i 3a:
0-dno i3ra".nava di0a!onala. (ro3 i@ 5 el'e i@ 5 el'e !ranan0- prov0-rava s- 0- li di:
0a!onala .n.tar odr-5-niC !ranica.
Uvi0-k tr-7a voditi ra".na o !rani"nim vri0-dnostima.
i2 (plakat,dijagonala 6 $>)
S+stem,out,println(-Bali plakat-)
else i2 ((plakat,dijagonala 7 $>) ]] (plakat,dijagonalaY#/>>))
S+stem,out,println(-0lakat srednjiD dimen&ija-)%
&va0 kod nai3!l-d i3!l-da isto kao i !orn0i prim0-r. 2-5.tim, mo6- s- do!oditi da
0-9
plakat.di0a!onalaFA$
i tada niti 0-dan od .v0-ta n- 7i 7io 3adovol0-n t- 7i s- i3vr/il- nar-d7- . 3avr/:
nom -ls- 7lok..
R-alno s- . !orn0-m prim0-r. nikada n- 7i tr-7ao do!oditi ispis i3 3avr/no! -ls-
7loka.
Tako5-r, .koliko .n.tar 7loka nar-d7i o7.Cva-niC LM 3a!radama posto0i samo
0-dna nar-d7a ko0a s- tr-7a i3vr/iti, onda s- 3a!rad- LM ko0- o3na"ava0. ta0 7lok
nar-d7i n- tr-7a0. stavl0ati. U danom s. prim0-r. i3 to! ra3lo!a i370-!n.t- LM 3a:
!rad-.
)ar-d7a 2atC.scrt8JNJ WDND> odnosi s- na op-raci0. kor0-novan0a. (lasa 2atC i3
Javina pak-ta 0ava.lan! sadr6i m-tod- 3a i3ra".navan0- slo6-ni0iC mat-mati"kiC
op-raci0a.
: ?% :
/ada+i.
+0 1reira/te klas' Drtikl kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &ro!
gra%0 1reira/te /o5 nekoliko o3/ekata klase Drtikl i za n/ih &ozovite %etod' is&isi$i/e!
n'240
)0 - klasi Drtikl kreira/te %etod' &rov/eri$i/en'24 ko/o/ se &rosl/e<'/e vri/ednost
'k'&na$i/ena0 -koliko /e 'k'&na$i/ena %an/a od @**( is&i5ite 9Povol/na ci/ena9(
'koliko /e %an/a od +)**( is&i5ite 9Prihvatl/iva ci/ena9( 'koliko /e vea od +)**( is&i!
5ite 9Presk'&o90 .etod' &ozovite iz %etode is&isi$i/en'240
60 - klasi Drtikl &ostavite statik' vari/a3l' 'k'&na$i/enaDrtikala ti&a do'3le0 Na!
veden' vari/a3l' 'vea/te za vri/ednost 'k'&na$i/ena kod svakog &oziva %etode is!
&isi$i/en'240 - glavno/ %etodi na&ravite is&is vri/ednosti vari/a3le 'k'&na$i/enaDrti!
kala0
80 1reira/te klas' Plakat kao ' &ri%/er'0 1o%&ilira/te i &okrenite &rogra%0 1od &ozi!
va %etode &ostaviDi%enzi/e24 &rosli/edite razliite vri/ednosti i &rov/erite is&ise0
@0 - klasi Plakat izdvo/ite is&itivan/e 'v/eta 2i#!else4 ' zase3n' %etod' is&ita/Di%en!
zi/e240 - glavno/ %etodi kreira/te /o5 nekoliko o3/ekata klase Plakat i za n/ih &ozovite
%etode &ostaviDi%enzi/e24 i is&ita/Di%enzi/e240
Naredba '8it+h
)ar-d7a sKitcC . n-kim s- sit.aci0ama mo6- koristiti .m0-sto nar-d7- if:-ls-.
&p-nit o7lik nar-d7- 0- sl0-d-i9
s)itcD (i&ra&) {
case const(A
// naredbe
break%
case const/A
// naredbe
break%
deEaultA
// naredbe
}
rim0-r9
public class .grica {
public static void main(String[] args) {
int &#(%
: ?# :
s)itcD (&){
case (A S+stem,out,println(-0o"ni novu igru-)%
break%
case /A S+stem,out,println(-0au&iraj-)% break%
case @A S+stem,out,println(-3astavi-)% break%
case <A S+stem,out,println(-Kavri-)% break%
case FA S+stem,out,println(-0omo!-)% break%
}
}
}
)ar-d7a sKitcC prov0-rava dani i3ra3 t- !a .spor-5.0- s konstantama danima .
cas- di0-l.. )ar-d7a 7r-ak 0- o7av-3na .koliko s- 6-li pr-kin.ti i3vo5-n0- nar-d7i
.n.tar sKitcC 7loka.

/ada+i.
+0 1reira/te klas' Igrica kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &ro!
gra%0 Prov/erite rez'ltat0 Iz%i/enite tako da %aknete 3reak nared3e i &ro%otrite re!
z'ltat0
2#*# etlje
)ar-d7- ko0- s- i3vod- vi/- p.ta stavl0a0. s- . p-tl0-. )ar-d7- s- ponavl0a0. sv-
dok 0- odr-5-ni .v0-t 3adovol0-n 8tr.->, a . protivnom s- pr-kida r-p-titivno i3vo:
5-n0- nar-d7i i nastavl0a s i3vo5-n0-m ostatka pro!rama. &snovn- p-tl0- s. 8hi5
le, do58hile i @or.
etlja 8hile
&snovni o7lik ov- p-tl0- 0- sl0-d-i9
)Dile (uvjet) {
// naredbe
}
)ar-d7- .n.tar 7loka i3vr/ava0. s- sv- dok 0- .v0-t 3adovol0-n. (ad 0- .v0-t fals-,
pr-ska". s- nar-d7- . 7lok. i nastavl0a s- s i3vr/avan0-m ostalo! koda.
etlja do58hile
&snovni o7lik ov- p-tl0- 0- sl0-d-i9
do {
// naredbe
} )Dile (uvjet)%
: ?4 :
&va p-tl0a radi kao i KCil- p-tl0a. Ra3lika 0- . tom- /to s- . KCil- p-tl0i prvo pro:
v0-rava 0- li 3adovol0-n .v0-t. Ukoliko 0-, t-k s- onda kr-n- s i3vr/avan0-m 7loka
nar-d7i. U do:KCil- p-tl0i prvo s- i3v-d. nar-d7- . 7lok., a t-k s- onda prov0-ra:
va 0-s. li .v0-ti 3adovol0-ni. &vd0- - s- nar-d7- si!.rno i3v-sti 7ar-m 0-danp.t.
etlja @or
&snovni o7lik ov- p-tl0- 0- sl0-d-i9
Eor (inicijali&acija% uvjet% korak){
// naredbe
}
Inici0ali3aci0a mo6- .kl0."ivati i d-klaraci0.9 int 7ro0acF$.
Uv0-t s- kontrolira pri svakom prola3. kro3 p-tl0..
(orak s- i3vr/ava posli0- svako! cikl.sa.
rim0-r9
public class Ginija {
String brojGinije%
String relacijaOd%
String relacija7o%
public Ginija(String brojGinije8 String relacijaOd8 String
relacija7o) {
tDis,brojGinije # brojGinije%
tDis,relacijaOd # relacijaOd%
tDis,relacija7o # relacija7o%
}
public static void main(String[] args) {
Ginija linije [] # ne) Ginija [F]%
linije [>] # ne) Ginija(-(-8-Civio-8-0e!ine-)%
linije [(] # ne) Ginija(-/-8-Srdo"i-8-*rsat-)%
linije [/] # ne) Ginija(-?-8-'rnjevo-8-0odveica-)%
linije [@] # ne) Ginija(-S-8-0eDlin-8-9ornja Teica-)%
linije [<] # ne) Ginija(-($-8-Iijeka-8-'astav-)%
2or (int i"#; i6lini!e8lengt.; i99){
S+stem,out,println(-Croj linijeA -4
linije [i],brojGinije())%
S+stem,out,println(-0ola&ite -4
linije [i],pola&iste())%
S+stem,out,println(-Odredite -4
linije [i],odrediste())%
S+stem,out,println(-MMMMMMMMMMMMMMMMMMMMM-)%
}
}
}
: ?@ :
U prim0-r. 0- dana klasa Lini0a. U !lavno0 m-todi klas- Lini0a kr-iran 0- ni3 o70-:
kata klas- Lini0a t- 0- for p-tl0om napravl0-n ispis sviC podataka sadr6aniC .
o70-ktima klas- Lini0a.
Isti ispis KCil- p-tl0om i3!l-dao 7i otprilik- ovako9
int i " #;
w.ile (i6lini!e8lengt.){
S+stem,out,println(-Croj linijeA -4
linije [i],brojGinije())%
S+stem,out,println(-0ola&ite -4
linije [i],pola&iste())%
S+stem,out,println(-Odredite -4
linije [i],odrediste())%
S+stem,out,println(-MMMMMMMMMMMMMMMMMMMMM-)%
i99;
}
-tl0a 0- vrlo sli"na for p-tl0i s o73irom da ima inici0ali3aci0. 7ro0a"a, .v0-t i korak
8.v-avan0- 7ro0a"a 3a %>.
Ukoliko s- .v-avan0- 7ro0a"a 3a7oravi staviti, p-tl0a s- mo6- i3vr/avati 7-sko:
na"no d.!o. Tako5-r tr-7a pa3iti na po3ici0. nar-d7- .v-avan0a 7ro0a"a 8na po:
"-tk. ili na kra0.> 0-r o tom- ovisi Co- li s- napraviti svi ispisi i Co- li s- n-!d0-
potkrasti !r-/ka prist.pa i3van !ranica ni3a.
Isti ispis dan do58hile p-tl0om9
int i " #;
do {
S+stem,out,println(-Croj linijeA -4
linije [i],brojGinije())%
S+stem,out,println(-0ola&ite -4
linije [i],pola&iste())%
S+stem,out,println(-Odredite -4
linije [i],odrediste())%
S+stem,out,println(-MMMMMMMMMMMMMMMMMMMMM-)%
i99;
}w.ile (i6lini!e8lengt.);

/ada+i.
+0 1reira/te klas' Lini/a kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &ro!
gra%0 Prov/erite is&ise dane razliiti% &etl/a%a0 Nto se doga<a 'koliko se deklarira
niz sa * ele%enataI - ko/o/ se &etl/i /avl/a gre5kaI
)0 - glavno/ %etodi klase Lini/a kreira/te nekoliko o3/ekata i doda/te ih ' konte/ner
Vector0 Is&ro3a/te sve &etl/e &riliko% is&isa iz konte/nera0
: ?= :
3# I&ni(ke i h!atanje i&ni(ki
I3nimk- 8-Jc-ptions> . Javi .o7i"a0-ni s. na"in .po3oravan0a na lo!i"k- po!r-/k-
. kod.. (ad s- do!odi n-ka od i3nimaka, ona s- spr-ma . novi o70-kt i3nimk- t-
s- pr-la3i na o7rad. t- i3nimk- 8-Jc-ption Candl-r>.
rim0-r9
int a [] # {M(8/8M@8F8>8;8M(S}%
int b # (>>%
Eor (int i#>% iYa,lengtD% i44){
int re& # b/a[i]%
S+stem,out,println(b4-/-4a[i]4- # -4re&)%
}
U prim0-r. posto0i di0-l0-n0- s n.lom t- s- . n-kom tr-n.tk. odvi0a nar-d7a9
%$$;$. 1 o73irom da s- do!a5a !r-/ka kod di0-l0-n0a s n.lom, ta !r-/ka nas i37a:
c.0- i3 pro!rama i 0avl0a9
31ception in t.read &main& !ava8lang8'rit.metic31ception: ; b/
$ero
U dr.!om prim0-r.9
int a [] # {M(8/8M@8F8(8;8M(S}%
int b # (>>%
int l # a,lengtD%
int re& # b/a[l]%
S+stem,out,println(b4-/-4a[l]4- # -4re&)%

vari0a7la l poprima vri0-dnost <. o pravilima ni3a, ind-ksi id. od $ do ?. Ukoliko
6-limo prist.piti -l-m-nt. i3van 3adaniC !ranica, 0avl0a s- !r-/ka.
int re& # b/a[l]%
aGlH 0- 3apravo aG<H, dok 0- 3adn0i -l-m-nt ni3a aG?H.
I3vr/avan0-m ovo! di0-la koda 0avl0a s- !r-/ka9
31ception in t.read &main&
!ava8lang8'rra/0nde1%ut%2ounds31ception: <
: ?? :
rim0-r9
public class 'njiga {
String na&iv%
public 'njiga(String na&iv) {
tDis,na&iv # na&iv%
}
void ispis'njige(){
S+stem,out,println(-'njiga je -4na&iv)%
}
public static void main(String[] args) {
'njiga k/ # null%
k/,ispis'njige()%
}
}
U !lavno0 m-todi n- kr-iramo o70-kt klas- (n0i!a, n-!o samo d-klariramo r-f-:
r-nc. na o70-kt ko0o0 0- dodi0-l0-na n.ll vri0-dnost. 1 o73irom da o70-kt n- posto:
0i, n- mo6- s- prist.piti m-todi ispis(n0i!-8>, a ako s- pok./a, 0avl0a s- !r-/ka9
31ception in t.read &main& !ava8lang84ull5ointer31ception
U pr-tCodna tri prim0-ra dan- s. samo n-k- mo!.- !r-/k- ko0- s- mo!. 0aviti
kao posl0-dica n-kiC n-pr-dvi5-niC okolnosti . rad. pro!rama.
Ukoliko 3namo da posto0i mo!.nost da s- i3nimka do!odi, mo6-mo odl."iti od:
7aciti t. i3nimk. i normalno nastaviti s radom pro!rama ili pod.3-ti odr-5-n-
akci0- 3a Cvatan0- i o7rad. tiC i3nimki.
+vatan0- i3nimki provodi s- . pos-7no o3na"-nom di0-l. koda ko0i promatramo i
3a ko0i s.mn0amo da 7i mo!ao pro.3ro"iti !r-/k.. (od o3na"avamo 7lokom trD LM.
Ukoliko s- .n.tar promatrano! koda do!odi !r-/ka 8i3nimka>, onda s- i3vr/ava:
n0- koda pr-7acilo na dio o3na"-n s catcC8>LM.
trD L
;; nar-d7- . ko0ima s- mo6- do!oditi i3nimka
M catcC 8TipI3nimk-% i3nimka>L
;; nar-d7- 3a o7rad. to! tipa i3nimk-
M catcC 8TipI3nimk-# i3nimka>L
;; nar-d7- 3a o7rad. to! tipa i3nimk-
M finallD L
;; nar-d7- 3avr/avan0a
M
: ?< :
U prvom prim0-r., .koliko 7ismo Ct0-li .Cvatiti i3nimk. i spri0-"iti nasilno i3la6-:
n0- i3 pro!rama, dodali 7ismo trD:catcC 7lokov-9

tr+ {
int a [] # {M(8/8M@8F8>8;8M(S}%
int b # (>>%
Eor (int i#>% iYa,lengtD% i44){
int re& # b/a[i]%
S+stem,out,println(b4-/-4a[i]4- # -4re&)%
}
} catcD (5ritDmeticVJception e) {
S+stem,out,println(-Opre&^ 7ijeljenje s nulom^-)%
}
Ukoliko 3namo da - s- do!oditi i3nimka ko0a s- o7ra5.0- tipom *ritCm-ti:
cEJc-ption, onda mo6-mo pisati n0-3in na3iv, a ako nismo si!.rni ko0a - s- i3:
nimka do!oditi ili 6-limo .Cvatiti vi/- i3nimaka od0-dnom, onda mo6-mo pisati i
op-niti tip EJc-ption. Informaci0- o i3nimci ko0a s- do!odila nala3- s- . pripad:
nom o70-kt. -, pa t- informaci0- mo6-mo iskoristiti 3a ispis i3nimk- na standard:
nom i3la3. . lo! datot-k. ili n-!d0- dr.!d0-.
U dr.!om prim0-r.9
tr+ {
int a [] # {M(8/8M@8F8(8;8M(S}%
int b # (>>%
int l # a,lengtD%
int re& # b/a[l]%
S+stem,out,println(b4-/-4a[l]4- # -4re&)%
} catcD (5rra+.ndeJOutOECoundsVJception e){
// pristup "lanu ni&a van danog opsega
} catcD (VJception e){
// op!enita i&nimka
}
.koliko s- do!odi i3nimka *rraDInd-J&.t&f'o.ndsEJc-ption, onda s- ona o7ra:
5.0- . prvom catcC 7lok.. Ukoliko s- do!odi 7ilo ko0a dr.!a i3nimka, ona s-
o7ra5.0- . dr.!om catcC 7lok..
'itno 0- napom-n.ti sl0-d--9 . tr-n.tk. kada s- i3nimka do!odi, id- s- na o7ra:
d. t- i3nimk- i na tom s- m0-st. i3la3i i3 trD 7loka. I3 to! s- ra3lo!a n-- moi i3:
vr/iti sv- nar-d7- . trD 7lok..
U3 trD i catcC 7lokov-, mo6- s- d-finirati i 7lok finallD. &n s- i3vr/ava nakon /to
s- i3vr/- trD i catcC t- sl.6i 3a dovr/avan0- radn0i ko0- s- nis. sti!l- i3vr/iti .n.:
tar trD 7loka 0-r s- do!odila i3nimka.
: ?A :
/ada+i.
+0 1reira/te klas' :ro/ i ' glavn' %etod' '3acite &rva dva &ri%/era iz &oglavl/a0
1o%&ilira/te i &okrenite &rogra%0 Prov/erite is&ise0 Doda/te tr"!catch 3lokove i &ono!
vo &rov/erite is&ise0 Izvr5ava li se kod ' tr" 3lok' do kra/aI
)0 1reira/te klas' 1n/iga kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite &ro!
gra%0 Prov/erite is&is0 1reira/te tr"!catch 3lok za o3rad' navedene izni%ke0
60 - klasi 1n/iga kreira/te nekoliko o3/ekata i za n/ih &ozovite %etod' is&is1n/ige240
: ?B :
6# :odi@ikatori %ri't,%a
2odifikatori prist.pa r0-/ava0. pitan0- privatnosti ili dost.pnosti po0-diniC vari0a:
7li, m-toda i klasa.
2odifikatori prist.pa s. sl0-d-i9
p.7lic
prot-ct-d
87-3>
privat-.
2odifikator prist.pa %,bli+ o3na"ava 0avn. dost.pnost n-k- vari0a7l-, m-tod- ili
klas-. To 3na"i da - s- . 7ilo ko0-m tr-n.tk. i3 7ilo ko0- dr.!- klas- moi pris:
t.piti nav-d-nim vari0a7lama, m-todama ili klasama.
2odifikator prist.pa %rote+ted o3na"ava 3a/tit. od 0avno! prist.pa. )av-d-nim
klasama, m-todama i vari0a7lama moi - s- prist.piti samo i3 klasa ko0- pripa:
da0. istom pak-t. ili potklasa ko0- iC nasl0-5.0..
Ukoliko s- n- stavi nikakav modifikator, podra3.mi0-vano stan0- 0- prist.p klasa:
ma, m-todama i vari0a7lama iskl0."ivo i3 klasa .n.tar isto! pak-ta.
2odifikator prist.pa %ri!ate o3na"ava maksimaln. 3a/tit. vari0a7li i m-toda t-
s- n0ima mo6- prist.piti iskl0."ivo i3 vlastit- klas-.
Ukoliko 6-limo sakriti int-rno stan0- o70-kta, .o7i"a0-no -mo koristiti na00a".
3a/tit. ko0. mo6-mo imati, a da s- svo0stva nav-d-n- klas- ipak mo!. koristiti.
6#"# Setteri i getteri
Ukoliko 3a/titimo vari0a7l- o70-kta od n-dop./t-no! prist.pa i dir-ktno! mi0-n0a:
n0a, pon-kad -mo ipak imati potr-7. pro"itati ili promi0-niti nav-d-no stan0-. Ra
to koristimo m-tod- ko0- postavl0a0. novo stan0- 8s-tt-ri>, odnosno m-tod- ko0-
nam vraa0. podatak o posto0--m stan0. 8!-tt-ri>.
rim0-r9
public class 0lanet {
private String na&iv%
private long promjer%
private long udaljenost%

public 0lanet(String na&iv) {
tDis,na&iv # na&iv%
}
public void set0romjer(long promjer){
tDis,promjer # promjer%
}
public void setQdaljenost(long udaljenost){
: <$ :
tDis,udaljenost # udaljenost%
}
public String get3a&iv(){
return na&iv%
}
public long get0romjer(){
return promjer%
}
public long getQdaljenost(){
return udaljenost%
}

public String toString(){
return getRlass(),get3ame()4-M-4na&iv4-M-%
}
}
U klasi lan-t vari0a7l- s. 3a/ti-n- privatnim prist.pom tako da s- n- mo!. di:
r-ktno mi0-n0ati kada im s- prist.pa i3 dr.!iC klasa. Vri0-dnost vari0a7l- na3iv
mi0-n0a s- pr-ko konstr.ktora, a 3a .dal0-nost i prom0-r osi!.ran- s. s-t m-to:
d-.
Ukoliko s- tr-7a do7iti vri0-dnost vari0a7li na3iv, prom0-r i .dal0-nost, kr-ira0. s-
!-t m-tod- ko0- vraa0. nav-d-n- vri0-dnosti.
o3iv s-t m-tod- 3a o70-kt plan-t9
planet,setQdaljenost(//$)%
o3iv !-t m-tod- 3a o70-kt plan-t9
long udaljenost # planet,getQdaljenost()%
1-t i !-t m-tod- "-sto s- po0avl0.0. . standardnim Javinim klasama.
rim0-r klasa 0ava.aKt.Dim-nsion9
package java,a)t%
import java,a)t,geom,7imension/7%
public class 7imension eJtends 7imension/7 implements
java,io,Seriali&able {
public int )idtD%
public int DeigDt%
public 7imension() {
tDis(>8 >)%
}
public 7imension(7imension d) {
: <% :
tDis(d,)idtD8 d,DeigDt)%
}
public 7imension(int )idtD8 int DeigDt) {
tDis,)idtD # )idtD%
tDis,DeigDt # DeigDt%
}
public double get_idtD() {
return )idtD%
}
public double get=eigDt() {
return DeigDt%
}
public void setSi&e(double )idtD8 double DeigDt) {
tDis,)idtD # (int) BatD,ceil()idtD)%
tDis,DeigDt # (int) BatD,ceil(DeigDt)%
}
public 7imension getSi&e() {
return ne) 7imension()idtD8 DeigDt)%
}
public void setSi&e(7imension d) {
setSi&e(d,)idtD8 d,DeigDt)%
}
public void setSi&e(int )idtD8 int DeigDt) {
tDis,)idtD # )idtD%
tDis,DeigDt # DeigDt%
}
// ,,,
}
/ada+i.
+0 1reira/te klas' Planet kao ' navedeno% &ri%/er'0 Doda/te glavn' %etod' i kre!
ira/te nekoliko o3/ekata klase Planet0 Pozovite set %etode0 - glavno/ %etodi &ozovite
&ri&adne get %etode i osig'ra/te is&ise0 1o%&ilira/te i &okrenite &rogra%0 Pro%otrite
is&is0
)0 1reira/te klas' ,'ncev,'stav i ' glavno/ %etodi te klase o3/ekte klase Planet0 Is!
&ita/te %o7e li se &reko tih o3/ekata &rist'&iti vari/a3la%a o3/ekta0 Is&ita/te %o7e li
se &rist'&iti get i set %etoda%a0

: <# :
9# Odno'i i&(e=, kla'a
1v- do ovo! po!lavl0a kr-iran- s. klas- sadr6aval- !lavn. m-tod.. U !lavno0 m-:
todi kr-irani s. o70-kti t- ist- klas-, po3ivan- s. m-tod- i ispisivala s. s- svo0stva
tiC o70-kata.
U ovom - s- po!lavl0. prika3ati kompl-ksnost o70-ktno! prist.pa .pravo 3aCva:
l0.0.i v-3ama i3m-5. ra3li"itiC klasa.
T- v-3- mo!. 7iti la7avi0-, "vr/-, 0-dnostavni0- i kompl-ksni0-.
&70-kti 0-dn- klas- mo!. aktivno s.d0-lovati . dr.!o0 klasi. Ukoliko 0- ta pov-3a:
nost 0-dnostavni0a, o7i"no !ovorimo o asoci0aci0ama i a!r-!aci0ama i3m-5. klasa,
a .koliko 0- "vr/a, onda !ovorimo o kompo3ici0i klasa.
(r-n.t -mo 0-dnostavnim s.d0-lovan0-m o70-kata 0-dn- klas- . dr.!o0 klasi t-
iC s vr-m-nom sv- vi/- v-3ivati.
(od kr-iran0a aplikaci0a .o7i"a0-no 0- da 0-dna klasa sadr6i !lavn. m-tod. i da
samo ta klasa 7.d- i3vr/na. &stal- klas- ko0- radimo n- mora0. sadr6avati !lav:
n. m-tod.. U sl0-d--m prim0-r. dana 0- klasa Trok.t ko0a ni0- i3vr/na klasa.
rim0-r9
public class *rokut {
double a8 b8 c%
public *rokut(double a8 double b8 double c) {
tDis,a # a%
tDis,b # b%
tDis,c # c%
}
double opseg*rokuta(){
return a4b4c%
}
}
Ukoliko 6-limo pokr-n.ti t. klas., 0avit - nam s- !r-/ka9
VJception in tDread -main- java,lang,3oRlass7eEWoundVrrorA *rokut
&dnosno, n- posto0i !lavna 8main> m-toda 3a nav-d-n. klas..
Isto vri0-di i 3a klas. C-tv-rok.t9
public class Retverokut {
double a8 b8 c8 d%
public Retverokut(double a8double b8double c8double d) {
tDis,a # a%
tDis,b # b%
: <4 :
tDis,c # c%
tDis,d # d%
}
double opsegRetverokuta(){
return a4b4c4d%
}
}
&7i"no klas- nis. sam- s-7i dostatn-, n-!o s- kom7inira0. 3a0-dno s dr.!im kla:
sama. U klasi Crtan0- posto0i samo !lavna m-toda . ko0o0 s- kr-ira0. dva o70-kta9
o70-kt t klas- Trok.t i o70-kt + klas- C-tv-rok.t.
rim0-r9
public class Rrtanje {
void crtaj(){
S+stem,out,println(-Rrtanje-)%
}
public static void main(String[] args) {
*rokut t # ne) *rokut((8/8@)%
Retverokut c # ne) Retverokut($8;8(>8(()%

S+stem,out,println(-Opseg trokuta je -4
t,opseg*rokuta())%
S+stem,out,println(-Opseg "etverokuta je -4
c,opsegRetverokuta())%
}
}
V- s- . rani0im po!lavl0ima napom-n.lo da svaki o70-kt ima svo0stva svo0- klas-
i ".va svo0- vri0-dnosti.
Ra o70-kt t vri0-d- svo0stva klas- Trok.t pa s- 3a n0-!a po3iva m-toda ops-!Tro:
k.ta8>.
Ra o70-kt + vri0-d- svo0stva klas- C-tv-rok.t pa s- 3a n0-!a po3iva m-toda ops-!:
C-tv-rok.ta8>.
(ada 7ismo Ct0-li po3vati m-tod. crta08> ko0a s- nala3i . klasi Crtan0-, to n- 7i :
smo mo!li napraviti pr-ko o70-kata t i +.
Ra po3iv m-tod- crta08> tr-7ali 7ismo kr-irati o70-kt klas- Crtan0- t- pr-ko n0-!a
po3vati t. m-tod..
/ada+i.
+0 1reira/te klase Trok't( $etverok't i $rtan/e kao ' navedeni% &ri%/eri%a0 1o%&ili!
ra/te i &okrenite svak' klas' zase3no i &ro%otrite rez'ltat &okretan/a0 Oavl/a/' li se
gre5ke kod &okretan/a klasa Trok't i $etverok'tI Pro%otrite is&is kod &okretan/a
klase $rtan/e0
: <@ :
)0 - klasi $rtan/e( &reko o3/ekata t i c( &ok'5a/te &rist'&iti %etodi crta/240 Pro%otrite
gre5ke ko/e se /avl/a/'0 1reira/te o3/ekt klase $rtan/e i &ok'5a/te &reko tog o3/ekta
&rist'&iti %etodi crta/240
60 1reira/te klas' 1n/iga ko/a i%a vari/a3le o3/ekta naziv i a'tor ti&a ,tring0 1reira/te
konstr'ktor ko/e% se &rosl/e<'/' inici/alne vri/ednosti tih vari/a3li 2konstr'ktor s dva
&ara%etra40 1reira/te %etod' is&isPodataka24 ko/a radi is&is naziva kn/ige i a'tora
na standardno% izlaz'0
80 1reira/te izvr5n' klas' 1n/iznica i ' glavno/ %etodi kreira/te tri o3/ekta klase 1n/i!
ga te za svaki od n/ih &ozovite %etod'0 Pro%otrite is&ise0
@0 - klasi 1n/iznica iz &rethodnog zadatka kreira/te konstr'ktor s &ara%etro% 3ro/!
1n/iga ti&a int te %etod' 3ro/1n/iga24 ko/a is&is'/e &odatak o 3ro/' kn/iga( inici/alno
&rosli/e<en konstr'ktoro%0 1reira/te o3/ekt te klase ' glavno/ %etodi te &ozovite %e!
tod' 3ro/1n/iga240
9#"# A'o+ija+ija
*soci0aci0a 0- 0-dnostavna v-3a i3m-5. klasa. &7i"no s- koristi .koliko s. klas-
pov-3an- na 7ilo ko0i na"in pr-ko o70-kata. &70-kt 0-dn- klas- /al0- por.k- o70-k:
t. dr.!- klas-. Impl-m-ntaci0a asoci0aci0- dana 0- r-f-r-ncama na o70-kt ko0- s-
nala3- kao lokaln- vari0a7l- . m-todama ili s- prosl0-5.0. kao param-tri m-toda.
U prim0-r. 0- d-finirana klasa (li0-nt ko0a ima tri vari0a7l- o70-kta9 im-, pr-3im- i
stan0-Rac.na. Vri0-dnosti 3a im- i pr-3im- s. prosli0-5-n- pr-ko konstr.ktora, a
vri0-dnost 3a vari0a7l. stan0-Rac.na 0- prosli0-5-na pr-ko m-tod- novo1tan0-Ra:
c.na8>.
rim0-r9
public class 'lijent {
String ime8 pre&ime%
double stanjeIacuna%

public 'lijent(String ime8 String pre&ime) {
tDis,ime # ime%
tDis,pre&ime # pre&ime%
}
void novoStanjeIacuna(double stanje){
stanjeIacuna # stanje%
}
double ispisStanjaIacuna(){
return stanjeIacuna%
}
void ispisi0odatke(){
S+stem,out,println(-.meA-4ime4- pre&imeA-4
: <= :
pre&ime)%
}
}
Dodan- s. m-tod- ispis1tan0aRac.na8> ko0- vraa0. stan0- ra".na t- m-toda ispi:
siodatk-8> ko0a radi ispis im-na i pr-3im-na na standardnom i3la3..

public class Canka {
void provjeri'lijenta('lijent k){
S+stem,out,println(k,ispisStanjaIacuna())%
}
public static void main(String[] args) {
'lijent k( # ne) 'lijent(-0ero-8-0eri!-)%
k(,novoStanjeIacuna(F>@,/>)%
'lijent k/ # ne) 'lijent(-Barko-8-Barkovi!-)%
k/,novoStanjeIacuna(M@>(/,F>)%
}
}

,lika @: -.L di/agra% klasa E veza asoci/aci/e
U !lavno0 m-todi klas- 'anka kr-irana s. dva o70-kta klas- (li0-nt9 k% i k#. r-:
ko konstr.ktora tim s- o70-ktima postavl0a0. inici0aln- vri0-dnosti 3a vari0a7l-
im- i pr-3im-.
Ra o70-kt k%9 k%.im- F E-roE, k%.pr-3im-FE-riE
Ra o70-kt k#9 k#.im- F E2arkoE, k#.pr-3im-FE2arkoviE
Ra nav-d-n- o70-kt- postavl0a s- novo stan0- ra".na, t0. prosl0-5.0- s- vri0-dnost
tipa do.7l- m-todi novo1tan0-Rac.na8>. U m-todi novo1tan0-Rac.na8> vri0-dnost
vari0a7l- stan0- prosl0-5.0- s- vari0a7li stan0-Rac.na.
Ra o70-kt k%9 k%.stan0-Rac.na F =$4.#$
Ra o70-kt k#9 k#.stan0-Rac.na F :4$%#.=$
Ukoliko s- 3a o70-kt k% po3ov- m-toda ispisiodatk-8>9
k(,ispisi0odatke()%
: <? :
do7i0- s- ispis9
.meA 0ero pre&imeA 0eri!
U3 po3iv m-tod- ispisi1tan0-Rac.na8>, tr-7amo postaviti i pripadni ispis9
S+stem,out,println(k(,ispisStanjaIacuna())%
(las. 'anka i3mi0-nit -mo tako da dodamo m-tod. prov0-ri(li0-nta8>9
void provjeri'lijenta('lijent k){
S+stem,out,println(-'lijent na ra"unu imaA -4
k,ispisStanjaIacuna())%
}
2-todi s- prosl0-5.0- param-tar tipa (li0-nt, odnosno klas- (li0-nt. &no /to s-
m-todi prosl0-5.0- 0- r-f-r-nca na o70-kt klas- (li0-nt.
U m-todi s- radi ispis stan0a ra".na 3a nav-d-no! kli0-nta. 1 pro!ram-rsko! sta:
0ali/ta, 3a o70-kt k po3iva s- m-toda ispis1tan0aRac.na8>.
&vd0- osta0- pitan0- kako - s- nav-d-na m-toda po3vati.
1 o73irom da 0- m-toda kr-irana . klasi 'anka, ona s- po3iva pr-ko o70-kta t-
klas-. U !lavno0 m-todi doda0-mo9
Canka banka # ne) Canka()%
banka,provjeri'lijenta(k()%
)aravno da k% n- mo6-mo prosli0-diti pri0- n-!o /to 0- kr-iran pa kona"ni kod 3a
klas. 'anka i3!l-da ovako9
public class Canka {
void provjeri'lijenta('lijent k){
S+stem,out,println(-'lijent na ra"unu imaA -4
k,ispisStanjaIacuna())%
}
public static void main(String[] args) {
'lijent k( # ne) 'lijent(-0ero-8-0eri!-)%
k(,novoStanjeIacuna(F>@,/>)%
'lijent k/ # ne) 'lijent(-Barko-8-Barkovi!-)%
k/,novoStanjeIacuna(M@>(/,F>)%

Canka banka # ne) Canka()%
k(,ispisi0odatke()%
S+stem,out,println(k(,ispisStanjaIacuna())%
: << :
banka8prov!eriKli!enta(k1);

k/,ispisi0odatke()%
S+stem,out,println(k(,ispisStanjaIacuna())%
banka8prov!eriKli!enta(k2);

}
}
U ovom sl."a0. nar-d7-9
S+stem,out,println(k(,ispisStanjaIacuna())%
banka,provjeri'lijenta(k()%
rad- sli"an ispis.
%#

U !lavno0 m-todi 7itan 0- r-dosli0-d odvi0an0a po0-diniC nar-d7i.
)ar-d7a9
banka,provjeri'lijenta(k()%
n- mo6- ii pri0- kr-iran0a o70-kta k%9
'lijent k( # ne) 'lijent(-0ero-8-0eri!-)%
2-5.tim, ako stavimo9
banka,provjeri'lijenta(k()%
k(,novoStanjeIacuna(F>@,/>)%
ovim r-dosli0-dom, do7ivamo potp.no ra3li"it ispis.
&vo samo 3na"i da s- . !lavno0 m-todi nar-d7- odvi0a0. po r-dosli0-d. pisan0a.
rim0-r9
public class To&niIed {
String brojGinije%
String vrijeme0olaska%
String vrijeme7olaska%

public To&niIed(String brojGinije8 String vrijeme0olaska8
String vrijeme7olaska) {
%#
2-toda prov0-ri(li0-nta8> mo6- s- .potp.niti dodatnim .v0-tima ko0i mo!. ispi:
tivati informaci0- i3 o70-kta tipa (li0-nt.
: <A :
tDis,brojGinije # brojGinije%
tDis,vrijeme0olaska # vrijeme0olaska%
tDis,vrijeme7olaska # vrijeme7olaska%
}
}
public class 5utotrolej {
public 5utotrolej() {
}
void ispisiTo&niIed(To&niIed vr){
S+stem,out,println(-Croj linijeA-4 vr,brojGinije4
- pola&ak u -4 vr,vrijeme0olaska4- dola&ak u -4
vr,vrijeme7olaska() )%
}
public static void main(String[] args) {
5utotrolej autotrolej # ne) 5utotrolej()%
To&niIed vr( # ne) To&niIed(-(-8-(/A>>-8-(/A<F-)%

autotrolej,ispisiTo&niIed(vr()%

}
}
/ada+i.
+0 1reira/te klase 1li/ent i :anka kao ' navedeno% &ri%/er'0 1o%&ilira/te i &okrenite
&rogra% &a &ro%otrite rez'ltat0
)0 Iz%i/enite klas' 1li/ent tako da dodate %etod' &ostaviDozvol/eni.in's24 ko/a &os!
tavl/a vri/ednost ' nov' vari/a3l' dozvol/eni.in's0 - %etodi &rov/eri1li/enta24 is&ita/!
te /e li kli/ent ' dozvol/eno% %in's'( a ako ni/e( is&i5ite '&ozoren/e0
60 1reira/te klase VozniRed i D'totrole/ kao ' navedeno% &ri%/er'0 1o%&ilira/te i &o!
krenite &rogra%0 Pro%otrite rez'ltat0
80 - glavno/ %etodi klase D'totrole/ kreira/te vi5e o3/ekata klase VozniRed i doda/te
ih ' neki od konte/nera0 Preko #or &etl/e na&ravite is&is svih o3/ekata iz konte/nera i
za n/ih &ozovite %etod' is&isiVozniRed240
@0 - klasi VozniRed vari/a3le o3/ekta za5titite &rivatni% &rist'&o% te kreira/te &ri!
&adne get %etode0 - sklad' s ti%e iz%i/enite i klas' D'totrole/( ko%&ilira/te i &okre!
nite &rogra%0
: <B :
9#)# Agrega+ija i ko(%o&i+ija
*!r-!aci0a i kompo3ici0a s. 0ak- v-3- i3m-5. klasa, o7i"no sadr6an- . v-3i EimaE.
Takv- v-3- s. npr. a.to ima kota"-, kn0i!a ima stranic-, kn0i6nica sadr6i kn0i!-...
rim0-r9
public class Stranica {
private int brojStranice%
private String tekst%

public Stranica(int brojStranice) {
tDis,brojStranice # brojStranice%
}
public void set*ekst(String tekst){
tDis,tekst # tekst%
}
public int getCrojStranice(){
return brojStranice%
}
public String get*ekst(){
return tekst%
}
}
import java,util,5rra+Gist%
public class Cilje&nica {
5rra+Gist aStranice # ne) 5rra+Gist()%

void dodajStranicu(Stranica stranica){
aStranice,add(stranica)%
}
void ispisiStranicu(int i){
Stranica s # (Stranica)aStranice,get(i)%
S+stem,out,println(s,get*ekst()) %
}
void ispisiSav*ekst(){
Eor (int i#>% iYaStranice,si&e()% i44){
Stranica s # (Stranica)aStranice,get(i)%
S+stem,out,println(s,getCrojStranice()4- -4
s,get*ekst())%
}
}
public static void main(String[] args) {
Cilje&nica bilje&nica # ne) Cilje&nica()%

Stranica s # ne) Stranica(()%
s,set*ekst(-3eki tekst ide u biljenicu,,,-)%
bilje&nica,dodajStranicu(s)%
: A$ :

Stranica s( # ne) Stranica(/)%
s(,set*ekst(-*est biljenica,,,-)%
bilje&nica,dodajStranicu(s()%

bilje&nica,ispisiSav*ekst()%
}
}
,lika C: -.L diagra% klasa E agregaci/a
U prim0-r. s. nav-d-n- dvi0- klas-9 1tranica i 'il0-3nica. (lasa 1tranica sadr6i
7ro01tranic- i t-kst, a klasa 'il0-3nica sadr6i kont-0n-r *rraDList ko0i sadr6i
o70-kt- klas- 1tranica.
2-todom doda01tranic.8> osi!.rano 0- dodavan0- o70-kta klas- 1tranica . kont-0:
n-r *rraDList, a m-todom ispisi1avT-kst8> osi!.ran 0- ispis sviC podataka i3 sviC
o70-kata klas- 1tranica.
Da 7i s- mo!la po3vati m-toda doda01tranic.8> s param-trom tipa 1tranica, prvo
s- mora kr-irati o70-kt klas- 1tranica9
Stranica s # ne) Stranica(()%
Ra ta0 s- o70-kt postavl0a i t-kst9
s,set*ekst(-3eki tekst ide u biljenicu,,,-)%
)akon to!a s- ta r-f-r-nca na o70-kt prosl0-5.0- kao param-tar m-todi9
bilje&nica,dodajStranicu(s)%
Da 7ismo .7acili novi o70-kt 8to"ni0- r-f-r-nc. na o70-kt> . kont-0n-r *rraDList,
moramo kr-irati 0o/ 0-dan o70-kt klas- 1tranica9
Stranica s( # ne) Stranica(/)%
: A% :
i postaviti t-kst9
s(,set*ekst(-*est biljenica,,,-)%
(ad 7ismo Ct0-li iskoristiti ona0 posto0-i o70-kt s 3a dodavan0- novo! t-ksta9
s,set*ekst(-*est biljenica,,,-)%
t-kst ko0i smo rani0- .pisali 7io 7i pr-pisan s novim t-kstom. Ra3lo! tom- 0- /to
s- kod prosl0-5ivan0a o70-kata i spr-man0a . kont-0n-r 3apravo n- radi s o70-kti:
ma n-!o s r-f-r-ncama na t- o70-kt-, a pr-ko tiC r-f-r-nci o70-kti s- i dal0- mo!.
mi0-n0ati.
V-3a i3m-5. oviC dvi0. klasa 81tranica i 'il0-3nica> 0- a!r-!aci0ska, odnosno 0-dna
klasa s.d0-l.0- . dr.!o0 klasi 0akom v-3om.
rim0-r9
public class Srediste {
private int J%
private int +%
public Srediste(int J8 int +) {
tDis,J # J%
tDis,+ # +%
}
public int getO(){
return J%
}
public int getP(){
return +%
}
}
public class Coja {
public static Coja RITV35 # ne) Coja(-Rrvena-)%
public static Coja 0G5T5 # ne) Coja(-0lava-)%
public static Coja KVGV35 # ne) Coja(-Kelena-)%

private String boja%
public Coja(String boja) {
tDis,boja # boja%
}
public String getCoja(){
return boja%
}
}
public class 'rug {
private Srediste srediste%
: A# :
private int polumjer%
private Coja boja%
public 'rug(Srediste srediste8 int polumjer8 Coja boja) {
tDis,srediste # srediste%
tDis,polumjer # polumjer%
tDis,boja # boja%
}
public Srediste getSrediste(){
return srediste%
}
public int get0olumjer(){
return polumjer%
}
public Coja getCoja(){
return boja%
}
public static void main(String[] args) {
Srediste srediste( # ne) Srediste((>8(>)%
Coja boja( # Coja,0G5T5%
'rug k(#ne) 'rug(srediste(8(>8boja()%
'rug k/#ne) 'rug(ne) Srediste((>>8(/>)8@>8Coja,RITV35)%

double J # k/,getSrediste(),getO()%
S+stem,out,println(-J#-4J4-+#-4k/,getSrediste(),getP())%
S+stem,out,println(-Coja je -4k/,getCoja(),getCoja())%
S+stem,out,println(-0olumjer -4k/,get0olumjer())%
}
}
U prim0-r. s. d-finiran- tri klas-9 klasa (r.!, klasa 1r-dist- i klasa 'o0a.
U klasi 1r-dist- dan- s. J i D koordinat- ko0- s- postavl0a0. pr-ko konstr.ktora
t- im s- prist.pa pr-ko !-t m-toda. U klasi 'o0a d-finiran- s. tri stati"k- vari0a:
7l- klas- 'o0a t- vari0a7la o70-kta.
(lasa (r.! sasto0i s- od vari0a7li sr-di/t- tipa 1r-dist-, pol.m0-r tipa int i 7o0a
tipa 'o0a.
(od kr-iran0a o70-kta klas- (r.!, konstr.ktor. s- prosl0-5.0. vri0-dnosti tipa
1r-dist-, int i 'o0a. Ra vri0-dnost tipa 1r-dist- kr-ira s- o70-kt t- klas-. Isto vri0-:
di i 3a o70-kt klas- 'o0a.
Srediste srediste( # ne) Srediste((>8(>)%
Coja boja( # Coja,0G5T5%
'rug k(#ne) 'rug(srediste(8(>8boja()%
(onstr.ktor. klas- (r.! prosl0-5.0. s- o70-kti sr-dist-% i 7o0a%.
2o!.- 0- kr-irati o70-kt klas- (r.! i na sl0-d-i na"in9
'rug k/#ne) 'rug(ne) Srediste((>>8(/>)8@>8Coja,RITV35)%
: A4 :
(od ispisivan0a podataka i3 o70-kta k# klas- (r.! .3ima0. s- podaci do7iv-ni 3a
o70-kt k#9
Srediste sred # k/,getSrediste()%
I3 o70-kta klas- 1r-dist- lako s- mo!. do7iti koordinat- J i D, po3ivom m-toda
!-t]8> i !-tb8>9
int J # sred,getO()%
int + # sred,getP()%
1kra-no s- mo6- pisati9
int J # k/,getSrediste(),getO()%
int + # k/,getSrediste(),getP()%
Isto vri0-di i 3a do7ivan0- podataka o 7o0i9
Coja b # k/,getCoja()%
String boja # b,getCoja()%
odnosno skra-no9
String boja # k/,getCoja(),getCoja()%
/ada+i.
+0 1reira/te klase ,tranica i :il/eznica kao ' navedeno% &ri%/er'0 1o%&ilira/te i &o!
krenite &rogra% te &ro%otrite rez'ltat0 Za o3/ekte &ozovite i %etod' is&isi,tranic'240
)0 - klasi ,tranica kreira/te %etod' vrati,tranic'24 ko/o/ se &rosl/e<'/e int 23ro/ stra!
nice40 .etoda vraa o3/ekt klase ,tranica0 1reira/te %etod' vrati,ve,tranice24 ko/a
vraa o3/ekt klase Drra"List0 Pozovite navedene %etode iz klase :il/eznica0
60 Iz%i/enite klas' :il/eznica tako da '%/esto konte/nera Drra"List &ostavite Mash!
.a&0 1ao kl/' &ostavite 3ro/,tranice0
80 1reira/te klase :o/a( ,rediste i 1r'g kao ' &ri%/er'0 1o%&ilira/te i &okrenite &ro!
gra%0 1reira/te /o5 nekoliko o3/ekata klase 1r'g0 3/ekte doda/te ' konte/ner Mash!
,et te ih kroz nek' &etl/' izv'cite iz konte/nera i is&i5ite0
: A@ :
9#*# Na'lje=i!anje
)asl0-5ivan0- 0- 0-dan od osnovniC konc-pata o70-ktno:ori0-ntirano! pro!ramira:
n0a. U nasl0-5ivan0. s.d0-l.0. natklasa i potklas-.
&snovna natklasa . Javi 0- klasa &70-ct ko0a s- nala3i . pak-t. 0ava.lan!. Ukoli:
ko kr-iramo vlastit. klas. ko0a n- nasl0-5.0- niti 0-dn. klas., onda 0- si!.rno da
ona nasl0-5.0- 7ar-m klas. &70-ct, iako s- to . kod. i3ri"ito n- navodi.
&snovna karakt-ristika nasl0-5ivan0a 0- da klas- ko0- nasl0-5.0. n-k. klas. nas:
l0-5.0. i sva svo0stva t- klas-, to"ni0- vari0a7l- i m-tod-.
&snovna sintaksa 0- sl0-d-a9
class 5 {
}
class C e1tends 5 {
}
rim0-r9
public class Retverokut {
int a8 b8 c8 d%
public Retverokut(){
}
public Retverokut(int a8 int b8 int c8 int d) {
tDis,a # a%
tDis,b # b%
tDis,c # c%
tDis,d # d%
}
void ispisStranica(){
S+stem,out,println(-a#-4a4- b#-4b4- c#-4c4- d#-4d)%
}
public static void main(String[] args) {
Retverokut cetverokut # ne) Retverokut((8/8@8<)%
cetverokut,ispisStranica()%
}
}
public class 0ravokutnik e1tends Retverokut {

public static void main(String[] args) {
0ravokutnik pravokutnik # ne) 0ravokutnik()%
pravokutnik,ispisStranica()%

Retverokut c # ne) Retverokut(;8$8S8?)%
: A= :
c,ispisStranica()%
}
}
,lika P: -.L di/agra% klasa E nasl/e<ivan/e
Ukoliko klasa ravok.tnik nasl0-5.0- klas. C-tv-rok.t, nasl0-5.0- i sva svo0stva
klas- C-tv-rok.t. U tom sl."a0., 3a o70-kt klas- ravok.tnik mo6- s- po3vati m-:
toda ispis1tranica8>.
2-5.tim, kod kr-iran0a o70-kta klas- ravok.tnik9
0ravokutnik pravokutnik # ne) 0ravokutnik()%
.3 po3iv podra3.mi0-vano! konstr.ktora klas- ravok.tnik, .0-dno s- tom o70-k:
t. da0. i svo0stva klas- C-tv-rok.t. &dnosno, .3 posto0-- vari0a7l- o70-kta klas-
ravok.tnik kr-ira0. s- i vari0a7l- o70-kta klas- C-tv-rok.t. )adal0-, po3ivom
konstr.ktora ravok.tnik8> .0-dno s- po3iva i konstr.ktor klas- C-tv-rok.t8> t-
s- vari0a7l- o70-kta klas- C-tv-rok.t inici0ali3ira0. na $. o3ivom m-tod-9
pravokutnik,ispisStranica()%
po3iva s- m-toda . klasi C-tv-rok.t, a vari0a7l- a, 7, c, d 3a ta0 s. v-3ani o70-kt
v- inici0ali3iran-.
Ukoliko . klasi ravok.tnik kr-iramo m-tod. ispis1tranica8>9
void ispisStranica(){
S+stem,out,println(-0ravokutnik a#-4a4- b#-4b4- c#-4
c4- d#-4d)%
}
: A? :
prilikom po3iva m-tod-9
pravokutnik,ispisStranica()%
po3iva s- m-toda i3 klas- ravok.tnik. 2-toda i3 natklas- po3iva s- 0-dino . sl.:
"a0. da m-toda . vlastito0 klasi ni0- na5-na. U sl."a0. po3iva vari0a7li a, 7, c, d
vri0-di isto9 vri0-d- i3 natklas- .koliko . vlastito0 klasi nis. d-klariran-.
9#*#"# O%erator ',%er
&p-rator s.p-r mo6- s- po3vati . dva o7lika9 3a po3iv konstr.ktora natklas- t- 3a
po3iv vari0a7li i m-toda natklas-.
&no /to s- . !orn0-m prim0-r. podra3.mi0-va, a n- pi/-, 0- po3iv podra3.mi0-va:
no! konstr.ktora natklas-9
public 0ravokutnik() {
super()%
}
&p-rator s.p-r8> sl.6i 3a po3iv podra3.mi0-vano! konstr.ktora. Ukoliko 6-limo
po3vati n-ki dr.!i konstr.ktor, . ovom sl."a0. C-tv-rok.t8int a, int 7, int c, int
d>, onda moramo po3vati s.p-r8> i prosli0-diti "-tiri vri0-dnosti tipa int.
U tom sl."a0. mo6-mo pisati9
public 0ravokutnik() {
super((8(8(8()%
}
o3ivom konstr.ktora natklas- prosli0-5-n- vri0-dnosti 7il0-6- s- . vari0a7l- a, 7,
c, d.
(las. ravok.tnik mo6-mo i3mi0-niti na sl0-d-i na"in9
public class 0ravokutnik e1tends Retverokut {
public 0ravokutnik(int a8 int b){
super(a8b8a8b)%
}
public static void main(String[] args) {
0ravokutnik pravokutnik # ne) 0ravokutnik(F8?)%
pravokutnik,ispisStranica()%

Retverokut c # ne) Retverokut(;8$8S8?)%
c,ispisStranica()%
}
}
: A< :
(od kr-iran0a o70-kta pravok.tnik, konstr.ktor. s- prosl0-5.0. vri0-dnosti = i ?.
(onstr.ktor ravok.tnik8int a, int 7> po3iva konstr.ktor natklas- t- m. prosl0-:
5.0- vri0-dnosti =,?,=,?. (onstr.ktor natklas- pridr.6.0- t- vri0-dnosti vari0a7la:
ma a, 7, c, d.
&p-rator s.p-r8> ko0i s- koristi 3a po3iv konstr.ktora natklas- mora s- pisati kao
prva nar-d7a . konstr.ktor..
Ukoliko . klasi ravok.nik napravimo vlastit. m-tod. ispis1tranica8>, prilikom
po3iva m-tod- ispis1tranica8> po3vat - s- m-toda . klasi ravok.tnik. T-k .koli :
ko o70-kt t. m-tod. n- na5- . vlastito0 klasi, potra6it - 0- . natklasi, natklasi
natklas- itd.
void ispisStranica(){
S+stem,out,println(-Stranice pravokutnika-)%
super,ispisStranica()%
}
Dr.!i na"in kori/t-n0a op-ratora s.p-r . sl."a0. po3iva m-toda i vari0a7li natkla:
s-9
super,ispisStranica()%
po3iva m-tod. ispis1tranica8> i3 klas- C-tv-rok.t. 2-todom ispis1tranica8> . klasi
ravok.tnik nad0a"ali smo m-tod. i3 natklas- i dodali 0o0 0o/ n-ka svo0stva.
Ukoliko n- 6-limo vari0a7lama a, 7, c, d prist.piti pr-ko konstr.ktora i dodi0-liti
im vri0-dnosti, s o73irom da vari0a7l- nismo d-klarirali kao privatn-, mo6-mo im
prist.piti dir-ktno ili pr-ko op-ratora s.p-r.
/ada+i.
+0 1reira/te klase $etverok't i Pravok'tnik kao ' navedeni% &ri%/eri%a 3ez 0 1o%!
&ilira/te i &okrenite &rogra%0 Pro%otrite rez'ltate is&isa0 Prov/erite &oziv %etode is&i!
s,tranica24 'koliko se nalazi ' klasa%a Pravok'tnik ili $etverok't0
)0 1reira/te klas' 1vadrat konstr'ktoro% ko/i i%a /edan &ara%etar ti&a int0 1lasa
1vadrat nasl/e<'/e klas' Pravok'tnik0 1reira/te o3/ekte klase 1vadrat i za n/ih &o!
zovite %etod' is&is,tranica240 1reira/te %etod' is&is,tranica24 ' klasi 1vadrat0 1ons!
tr'ktoro% klase 1vadrat osig'ra/te &rosl/e<ivan/e &ara%etra natklasi0
60 - klasi $etverok't doda/te konstr'ktor ko/e% se &rosl/e<'/e &ara%etar ti&a Di!
%ension 2iz &aketa /ava0aGt40 1reira/te %etod' getDi%ension24 ko/a vraa o3/ekt kla!
se Di%ension0 1reira/te o3/ekte &ozivo% novog konstr'ktora0 1reira/te konstr'ktore i
' &otklasa%a te &ozovite %etod' getDi%ension240
: AA :
o%i' tabli+a
Ta7lica %9 rimitivni tipovi podataka i podra3.mi0-van- vri0-dnosti....................##
Ta7lica #9 *ritm-ti"ki op-ratori..........................................................................#A
Ta7lica 49 &p-ratori nad 7itovima......................................................................#B
Ta7lica @9 &p-ratori .spor-d7-...........................................................................4$
Ta7lica =9 Lo!i"ki op-ratori.................................................................................4$
o%i' 'lika
1lika %9 rika3 klas- . U2L notaci0i.....................................................................<
1lika #9 U2L dia!ram klasa P popis m-toda.......................................................%A
1lika 49 U2L di0a!ram o70-kta e vari0a7l- o70-kata...........................................4%
1lika @9 U2L di0a!ram o70-kta e vari0a7la klas-................................................44
1lika =9 U2L di0a!ram klasa e v-3a asoci0aci0-..................................................<?
1lika ?9 U2L dia!ram klasa : a!r-!aci0a.............................................................A%
1lika <9 U2L di0a!ram klasa : nasl0-5ivan0-.......................................................A?
: AB :
Literat,ra.
%. :r'ce Kckel: ETCinkin! in Java, @
tC
EditionE , r-ntic-:+all TR, #$$?
#. Dario ,'5an/: EOava9 ro!ramiran0- 3a Int-rn-t i forld fid- f-7E, Rnak,
Ra!r-7, %BB<.
4. O0Losling( :0Oo"( L0,teele( L0:racha: EJavag Lan!.a!- 1p-cification, 4
rd
EditionE, r-ntic-:+all TR, #$$=
@. 2ik- &SDocC-rtD9 E&70-ct:&ri-nt-d *nalDsis and D-si!nE, JoCn fil-D Z
1ons, Ltd, #$$=.
=. URL9 Cttp9;;doKnload.oracl-.com;0avas-;%.=.$;docs;api;, 8#$.$#.#$%%>
?. URL9 Cttp9;;doKnload.oracl-.com;0avas-;t.torial; 8%B.$%.#$%%>
<. URL9 Cttp9;;KKK.t.torialspoint.com;0ava;ind-J.Ctm 8#%.$%.#$%%>
: B$ :

You might also like