You are on page 1of 105

Java za mlade programere (1)

ta je Java?
Java je raunarski programski jezik koji je razvila firma Sun
Microsystems. Programski jezik se koristi za izdavanje instrukcija
raunaru da obavi konkretne poslove. Java, mada relativno novi jezik,
nastao 1995. godine, izuzetno je popularna.
Prvi razlog za popularnost je njena cena potpuno je besplatna!.
Mnogi drugi programski jezici prodaju ce po ceni od vie stotina ili
hiljada dolara, to je za veinu ljudi glavna prepreka da ponu da ue
programiranje.
Drugi razlog za popularnost Jave je to to je Java programi mogu da
se izvravaju na skoro svakom tipu raunara. Kaemo da su Java
programi nezavisni od platforme na kojoj se izvravaju.
Java moe da se koristi za razvoj raznovrsnih aplikacija. Postoje
jednostavni tekstualno-zasnovani programi koji se nazivaju konzolnim
aplikacijama. Takvi programi podravaju samo tekstualni unos i ispis
na monitoru vaeg rauanara. Takoe, moete da pravite aplikacije sa
grafikim korisnikim interfejsom (engl. Graphical User Interface
GUI). Ove aplikacije raspolau sa menijima, paletama alatki,
dugmadima, trakama za pomeranje sadraja drugim kontrolama koje
reaguju na mia. Primeri GUI aplikacija koje ste u svom radu na
raunaru ve koristili su programi za obradu teksta, programi za rad sa
tabelama i raunarske igrice. Takoe, moete praviti i aplikacije koje
se nazivaju apleti (engl. Applets). To su male GUI aplikacije koje
mogu da se izvravaju unutar web stranice. Apleti daju dinaminost
web stranicama. Mislim da ste ve uvideli univerzalnost programskog
jezika Java. Na ovom kursu krenuemo od prostih konzolnih aplikacija.
To e nam omoguiti da se koncentriemo na uenje osnova Jave bez
uputanja u svet grafikog korisnikog interfejsa.
Drugo popularno svojstvo Jave je to to je ona objektno orijentisana.
To je fini nain da se kae da su Java programi sainjeni od vie
osnovnih delova (komponenti) koji mogu da se vie puta koriste. To za
vas kao Java programera znai da moete da pravite i menjate velike

programe bez veih komplikacija. Tokom ovog kursa vie puta ete se
sresti sa terminom objekt (engl. Object), a tokom izlaganja kursa taj
koncept e vam postati jasan.
Poslednja prednost Jave je to to je ona prost jezik,u poreenju sa
drugim programskim jezicima i zbog toga se relativno lako ui. Ta
jednostavnost je neophodna da bi se podrala nezavisnost Java
aplikacija od tipa platforme (sposobnost da se izvrava na svakom tipu
raunara). Meutim, ta jednostavnost ne znai da Java nije moan
programski jezik. Moete pomou Jave da uradite sve ono to moete
da uradite sa bilo kojim mnogo sloenijim programskim jezikom.
Zato uiti Javu?
Moemo postaviti i pitanje Zato uiti programski jezik? Postoji vie
razloga za to. Prvo, ukoliko znate da programirate, razumeete bolje
kako raunari rade. Drugo, pisanje programa je dobra veba za
razvijanje vetine razmiljanja morate dobro logiki da razmiljate
da biste napisali raunarske programe.. Takoe, morate pomalo biti i
perfekcionista, raunari nisu toliko pametni i zato zahtevaju strogo
precizne instrukcije da bi obavili svoje poslove. Tree, raunarski
programeri su veoma traeni i zarauju mnogo novca. Na kraju,
pisanje raunarskih programa je zabavno. Posebno je zadovoljstvo
kada vidite svoju ideju kako ivi na ekranu raunara.
Zbog jednostavnosti Jave, brzo ete nauiti kako se piu Java
programi. Meutim, to to ete brzo napisati svoj prvi Java program ne
znai da ste nauili sve to treba da znate o Javi. Ovaj kurs je samo
kratak uvod u Javu, stoga smatrajte ga kao prvi korak na putu koji
vodi do zvanja Java programera.
Potrebni resursi
Da biste pisali i izvravali Java programe, potreban vam je Java
Software Development Kit (Java SDK). To je besplatan proizvod
koji moete preuzeti preko Interneta. To jednostavno znai da ete
iskopirati tzv. instalacionu datoteku na svoj raunar, pokrenuti
instalaciju i zatim poeti sa radom. Ovaj proizvod moete nai na
adresi http://java.sun.com.
U sledeem nastavku bie opisano kako da preuzmete i instalirate ovaj
softver.

Java za mlade programere (2)


Preuzimanje i instaliranje programa
Da biste pisali i izvravali Java programe, potreban vam je Java
Software Development Kit (SDK). Radi se o besplatnom proizvodu koji
moete preuzeti preko Interneta. To jednostavno znai da moete da
kopirate tu datoteku na svoj raunar i zatim instalirate taj paket.
Potrebno je zato da uradite sledee:
Pokrenite svoj pretraiva weba (Internet Explorer, Netscape ili neki
drugi) i odete na web sajt firme Sun Microsystems:
http://java.sun.com
Taj sajt sadri obilje korisnih informacija o Javi. to vie budete
programirali u Javi, to ete sve ee poseivati ovaj sajt u potrazi za
reenjima svojih problema.
Na Sunovom sajtu treba da potraite link koji omoguava preuzimanje
paketa koji se naziva J2SE SDK (Java 2 Standard Edition Software
Development Kit). Za nae potrebe treba da preuzmete verziju J2SE
1.4.1. Kada pronaete stranicu sa linkovima odaberite onu koja
odgovara za instaliranje na vau raunarsku platformu (Windows).
Poto aktivirate link, pojavie se sporazum o licenci (Licence
Agreement). Potrebno je da kliknete na Accept ukoliko elite da
preuzmete paket.
Kliknite miem na link za preuzimanje datoteke J2SDK i na ekranu e
se pojaviti sledei prozor:

Kliknite miem na dugme Save i izaberite lokaciju na kojoj elite da


snimite preuzetu datoteku. Potom ete na ekranu videti kako
preuzimanje napreduje.

Java SDK je veoma velika datoteka (j2sdk-1_4_1_02-windowsi586.exe), veliine oko 36 MB, stoga e preuzimanje preko modema i
komutirane veze potrajati.
Kada ste preuzeli SDK, spremni ste za instaliranje paketa na svoj
raunar. Izaberite dugme Start na paleti poslova a zatim Run.
Pronaite direktorijum (folder) gde ste snimili datoteku i selektujte
datoteku. Kliknite na Open. Java SDK instalacioni program e
raspakovati neke datoteke iuvodni ekran sa sporazumom o licenci e
se pojaviti na ekranu. Po prihvatanju licence, instalacioni program e
vas pitati gde elite da se obavi instalacija.

Predlaem da instalaciju Java SDK obavite u podrazumevanom


direktorijumu (c:\j2sdk1.4.1_02 u ovom sluaju), stoga kliknite miem
na dugme Next.

Nemojte ovde nita menjati. elimo da instaliramo sve komponente.


Kliknite miem na Next da biste videli ekran koji vam omoguava izbor
podrazumevanog Internet pretraivaa.

Kliknite miem na Next i instalacija poinje. Kada se zavri videete


sledei prozor:

(Moda e vam biti postavljeno pitanje da ponovo pokrenete raunar,


a moda se to pitanje i nee pojaviti.) Kliknite miem na dugme Finish
i time ste okonali instalaciju.
JCreator integrisano razvojno okruenje
Proces pravljenja i izvravanja Java programa ima tri jasno razdvojene
etape:
Pisanje programa
Kompajliranje (prevoenje) programa (generie se datoteka koju
raunar moe da razume)
Izvravanje programa.
Za sada, ne brinite se mnogo oko toga ta se tano deava u svakoj od
ovih etapa. Jedan od naina da kompletirate ove tri etape je da prvo
piete program koristei neki osnovni editor teksta i snimite dobijeni
tekst u datoteku. Potom, etape kompajliranja i izvravanja mogu se
obaviti kucajui u komandnoj liniji posebnih komandi predvienih za te
etape. Mali broj Java programera pie programe na taj nain. Skoro svi
programeri razvijaju svoje programe koristei tzv. Integrisano
razvojno okruenje (Integrated Development Environment IDE).
Postoji vie IDE proizvoda za razvoj Java programa., neki su veoma
sloeni, a neki veoma prosti. Mi emo koristiti verziju koja je
besplatna. Radi se o okruenju koje se naziva JCreator. Radi se o

interfejsu koji se lako koristi a moe besplatno (verzija Lite) da se


preuzme preko Interneta. Preporuujem da koristite ovaj softver zato
to e vam olakati programerski deo posla i omoguiti da se
koncentriete na uenje elemenata Java jezika.
Pre nego to preuzmete i instalirate JCreator, moram da vas upoznam
sa jednom injenicom. JCreator radi samo u Windows okruenju, to
znai da korisnici Linuxa i Mac OS moraju da pronau drugo reenje.
Ukoliko koristite Windows i izaberete da koristite JCreator, pristupite
preuzimanju tog okruenja. JCreator je razvila firma Xinox Software.
Postoje dve verzije ovog proizvoda, JCreator LE (Light Edition) I Pro
(Professional Edition). Mi emo koristiti LE zato to je besplatan.
Da biste preuzeli ovaj softver uradite sledee:
Idite na JCreator web sajt: http://www.jcreator.com
Potraite link za preuzimanje Jcreatora LE (Freeware).
Na web stranici za preuzimanje kliknite miem na link i na ekranu e
se pojaviti sledei prozor:

Kliknite miem na dugme Save i izaberite lokaciju na kojoj elite da


sauvate preuzetu datoteku. Pojavie se na ekranu prozor koji
prikazuje kako preuzimanje napreduje.

Ovog puta radi se o datoteci relativno male veliine (manje od 2 MB),


tako da preuzimanje nee dugo trajati.
Po preuzimanju komprimovane datoteke, raspakujte je pomou
WinZipa. Dvo-kliknite na datoteku Setup.exe da bi zapoeli instalaciju.
Na ekranu e se pojaviti prozor sledeeg izgleda:

Kliknite miem na dugme Next i videete sporazum o licenci (naravno,


treba da se saglasite da bi se instalacija nastavila).
Na ekranu e se pojaviti za redom nekoliko prozora posredstvom kojih
e vas instalacioni program pitati za odredite za neke datoteke i da li
elite da se ikona programa pojavi na radnoj povrini (Desktopu).

Kliknite miem na Install i poinje instalacija. Kada se zavri videete


sledei prozor.

Kliknite miem na dugme Finish (potvrdite opciju Launch JCreator LE).


JCreator e se aktivirati i postaviti vam jo nekoliko pitanja. Prvo,
pitae vas za pridruivanje datoteka:

Prihvatite ponueno klikom mia na Next. Sada e se pojaviti jedan


veoma vaan prozor:

JCreator od vas trai informaciju o instaliranoj verziji Java SDK


(odnosno JDK Java Development Kit). Kliknite miem na dugme
Browse (ako je potrebno) da biste definisali putanju do Java
direktorijuma (verovatno, c:\j2sdk1.4.1_02), a zatim kliknite na Next.
Na ekranu se pojavljuje prozor

JCreator eli da zna gde se nalazi Java SDK dokumentacija. Za potrebe


ovog kursa dokumentacija nije neophodna, zato nisam ni naveo da je
preuzmete sa Sunovog sajta. Na kraju, kliknite miem na dugme
Finish i potom e se JCreator pokrenuti.
U sledeem nastavku upoznaemo se sa interfejsom programa
JCreator i nastaviti dalje uenje Jave.

Java za mlade programere (3)


Pokretanje JCreatora
Kada je instaliran, JCreator se pokree sledeom
procedurom:
Kliknite miem na dugme Start na Windows paleti
poslova.
Izaberite u meniju Programs stavku JCreator LE.
Kliknite miem na JCreator LE.
Ukoliko ste izvukli preicu na radnu povrinu, tada ete
JCreator pokrenuti tako to ete dvo-kliknuti miem na
ikonu ovog programa.
JCreator je pokrenut i na ekranu se pojavljuje nekoliko
prozora.

Radni prostor
Oblast
datoteke

Ovaj ekran prikazuje JCreatorovo integrisano razvojno


okruenje (engl. Integrated Development Environment IDE). O integrisanom razvojnom okruenju emo nauiti
neto vie u nekom od sledeih nastavaka. Za sada,

koristiemo ga da iztestiramo Java instalaciju i da vidimo


kako se uitava i pokree neki program. Obratite panju
na lokacije radnog prostora, oblast datoteke i glavni meni.
Radni prostor nam prikazuje koji Java programi su nam na
raspolaganju. Oblast datoteke se koristi za prikaz
aktuelnog koda, a glavni meni za kontrolu pristupa
datoteci i funkcije ureivanja datoteke. Meni se takoe
koristi za kompajliranje i izvravanje programa.
Otvaranja Java projekta
Ono to elimo sada da uradimo je da otvorimo projekat.
Raunarski programi (aplikacije) napisani u Javi esto se
nazivaju projektima. Projekti ukljuuju sve informacije u
datotekama koje su potrebne naem programu. Java
projekti su grupisani u radnim prostorima.
Neka je JCreator pokrenut. Prvi korak kod otvaranja
projekta je otvaranje radnog prostora koji sadri projekat
koji nas interesuje. Sledite ove korake:
Izaberite u meniju File opciju Open Workspace. Na ekranu
se pojavljuje prozor Open:

Svi projekti u sluaju koji emo razmatrati su sauvani u


radnom prostoru pod nazivom \JavaKids\JK Code.
Preimo u taj direktorijum i izaberimo JK Code radni
prostor. Kliknimo Open.
Bie prikazano vie projekata u radnom prostoru.
Pronaimo projekat WelcomeProject. Uradimo desni klik
miem na nazivu tog projekta i iz pomonog

menijanizaberimo stavku Sets as Active Project. Klikom


mia na znak + pored naziva projekta razvimo vorite
projekta. Sada emo videti da u njemu postoji jedna
datoteka pod nazivom Welcome.java. Ako se sadraj fajla
ne pojavi u oblasti prikaza datoteke, dvo-kliknite na tu
datoteku da bi se otvorila.

Konano imate priliku da vidite svoj prvi Java program;


kasnije emo objasniti ta tih nekoliko redova koda radi.
Za sada, elimo samo da vidimo da li moemo da
pokrenemo taj program.
Kompajliranje i izvravanje Java projekta
Poto razvijete Java projekat, prirodno je da elite da
pokrenet ili izvrite taj program. To se ostvaruje u dva
koraka: kompajliranjem i izvravanjem. Ponovo, o tome
ete vie saznati u nekom od sledeih nastavaka. Za sada,
proveravamo da li je sve instalirano kako treba.
Da biste kompajlirali projekat Welcome, izaberite u
glavnom meniju stavku Build, a zatim Compile Project.
Druga varijanta je da pritisnete samo taster F7 na
tastaturi. Na ekranu treba da se pojavi novi prozor koji je
prikazan na sledeoj slici.

Ako je sve instalirano kako treba, u donjem prozoru treba


da vidite rei Process completed. Time nas JCreator
obavetava da je projekat uspeno kompajliran.
Ako program nije kompajliran, najverovatnije da JCreator
nije mogao da pronae Java SDK. Da biste proverili da li
JCreator zna gde je Java SDK, pokuajte sledee:
U glavnom meniju izaberite stavku Configure.
Izaberite stavku Options.
U okviru za dijalog Open kliknite miem na JDK Profiles.
U prozoru treba da bude direktorijum gde je Java
instalirana. Ako ga nema, izaberite stavku New i sledite
instrukcije kako biste pronali direktorijum. Ako je
direktorijum naveden ali to nije odgovarajui direktorijum,
oznaite navedeni direktorijum i izaberite Edit. Uradite
potrebnu korekciju nazivva i lokacije direktorijuma.
Da li ste sada spremni da pokrenete svoj prvi projekat?
Da biste to uradili, izaberite u glavnom meniju Build, a
zatim stavku Execute Project (a moete isto dejstvo

proizvesti i pritiskom na taster F5 na tastaturi). Na ekranu


treba da se pojavi prozor sa Welcome porukom, kao na
sledeoj slici.

Ako se to desilo, sve je instalirano kako treba. Ako nije


tako, neto nije instalirano kako treba i moraete
kompletno da proverite instalaciju Jave i JCreatora kao
biste bili sigurni da je sve uraeno na odgovarajui nain.
Pre nego to zaustavimo izvravanje programa,
napravimo jednu malu izmenu na izlaznom prozoru.
Inicijalna postavka okruenja je da izlazni prozor prikazuje
(tampa) beli tekst na crnoj pozadini. To je u redu, ali
nije ba racionalno. Naime, ako nastavimo tako da
radimo, prilikom tampanja ovih prozora potroili bi
mnogo tonera. Moemo promeniti boje i to vrlo lako.
Kliknimo miem na malu ikonu u gornjem levom uglu
izlaznog prozora. Izaberimo u pomonom meniju stavku
Properties. Kada se na ekranu pojavi okvir za dijalog,
izaberimo karticu Colors.

Na ovoj kartici moemo definisati mnogo stvari, izmeu


ostalog i novi Screen Background (pozadina ekrana) i
novu boju za Screen Text (ekranski teksta). Izbor se
obavlja tako to prvo oznaite odgovarajue radio dugme
pored tih naziva a zatim izaberete boju sa ponuene
palete. Izaberite boje koje elite, a ja preporuujem svetlu
pozadinu sa tamnim tekstom. Kada ste obavili izbor
kliknite na dugme OK. Na ekranu se pojavljuje sledei
okvir za dijalog:

Navedite gde elite da snimite ova svojstva koja e


JCreator koristiti za sve vae projekte i potom kliknite na
OK. Izlazni prozor e sada biti obojen novim bojama.

Da biste zaustavili izvravanje projekta, pritisnite bilo koji


taster ili kliknite miem na dugme X u gornjem desnom
uglu prozora.
Naputanje JCreatora
Kada ste zavrili rad sa Java projektom, preostalo je jo
da napustite JCreator razvojno okruenje. To je ista
procedura kao i kod svih drugih Windows aplikacija:
U glavnom meniju izaberete stavku File.
Izaberete sada stavku Exit (na dnu menija File).
JCreator e zatvoriti sve otvorene prozore i biete vraeni
na radnu povrinu Windowsa. Moete koristiti i alternativni
nain, tj. kliknuti miem na dugme X u gornjem desnom
uglu glavnog prozora JCreatora.

Java za mlade programere (4)


Osnove Java programa
U prethodnim nastavcima opisali smo kako da se pripremi
raunar za kreiranje i izvravanje Java programa. U ovom
nastavku nauiete kako izgleda osnovna struktura Java
programa, zatim ete nauiti neka osnovna pravila za
pisanje Java programa. Kreiraemo i snimiti projekat
pomou Jcreatora, razvojnog okruenja koje smo upoznali u
prethodnom nastavku. Na kraju, nauiete ta se deava
kada kompajlirate (prevodite) i izvravate Java program.
Ovime ete stei neophodna znanja da napravite svoj prvi
Java program.
Struktura Java programa
Java, kao i svaki drugi jezik (raunarski ili govorni), ima
svoju terminologiju. Pogledajmo zato strukturu Java
programa i nauimo tu novu terminologiju. Java program (ili
projekt) ini nekoliko datoteka. Ove datoteke se nazivaju
klasama. Svaka od tih datoteka ima Java kd koji obavlja
neki specifian zadatak (zadatke). Svaka datoteka klase ima
oznaku tipa datoteke (tzv. Ekstenziju) .java. Naziv
datoteke koji se koristi za snimanje klase mora da odgovara

nazivu klase. Jedna klasa u svakom projektu e imati neto


to se nekad zove glavni metod (engl. main method).
Kagdog izvravate Java program, va raunar e prvo
potraiti glavni metod da bi neto poelo da se deava.
Prema tome, da biste izvrili program, direktno navodite
klasu koja sadri glavni metod.
Pogledajmo kako to izgleda u primeru Welcome
Project, koji smo imali prilike ranije da vidimo. Pokrenimo
prvo JCreator. Welcome Project bi trebalo da je jo aktivan
projekt. Ako nije tako, uradite desni klik miem na folder
WelcomeProject u radnoj oblasti i izaberite stavku Sets as
Active Project. Trebalo bi da vidite:

Ovaj projekt ima jednu datoteku koja se naziva


Welcome.java. Uoite da, kao to je zahtevano, naziv
Welcome odgovara nazivu klase koji se vidi u kodu (public
class Welcome). Ako se kd ne vidi, uradite dvo-klik miem
na datoteku koja ima naziv Welcome.java. Ako projekt
ima jo klasa, one bi trebalo da budu izlistane ispod foldera
WelcomeProject. Takoe, uoite u kodu oblast koja ima
re main. To je glavni metod koji nam je potreban u jednoj
od klasa projekta.
To je zaista sve to je potrebno da znamo o strukturi Java
programa. Samo da vas podsetim da program (ili projekt,
koristiemo oba termina) sainjava vie datoteka koje se
nazivaju klasama, a koje sadre aktuelni Java kd. Ona
klasa od koje sve poinje je glavna klasa. Jo jedna stvar,
projekti se grupiu u radne oblasti (engl. Workspaces). Sa
ovim znanjem moemo da ponemo sa razmatranjem
Welcome programa red po red kako bi shvatili ta je Java
program uopte.
Welcome Project - ponovo
Trebalo bi da je jo uvek aktivan JCreator u kome se
izvrava Welcome program. Ako nije tako, pokrenite
JCreator, otvorite WelcomeProject (desni klik na naziv

projekta i izbor stavke Set as Active Project) i dvo-kliknite


miem na datoteku Welcome.java. Trebalo bi da vidite
sledei kd:
/*
* Welcome Project
* Java for Kids
* KIDware (206) 721-2556
* www.KIDwareSoftware.com
*/
public class Welcome
{
public static void main(String[] args)
{
System.out.println("Welcome to Java for Kids!");
}
}
Proimo kroz ovaj kd red po red kako bi objasnili njegovu
strukturu.
Prvih est redova programa su:
/*
* Welcome Project
* Java for Kids
* KIDware (206) 721-2556
* www.KIDwareSoftware.com
*/
U tim redovima je komentar (engl. Comment). Ti redovi
obezbeuju neke informacije o programu, tj. O kom

programu se radi i informaciju za kontakt. Komentar poinje


sa simbolom /* i zavrava se sa simbolom */. Ovi redovi
su poznati i kao zaglavlje programa (engl. program
header). Dobro je da uvek stavite zaglavlje u svoje Java
programe u kojima je informacija ta rade i ko ih je napisao.
Java kompajler ignorie svaki komentar njihova uloga je
samo da prue objanjenje.
Prvi red posle komentara sadri sledee:
public class Welcome
{
Taj red sadri definiciju nae klase nazvane Welcome.
Kljuna (slubena; engl. keyword) re public odreuje da li
drugi delovi programa mogu da pristupaju ovoj klasi.
Kljune rei su deo svakog programskog jezika to su
rezervisane rei i ne mogu se koristiti u regularnim Java
izrazima. Leva vitiasta zagrada ({) se koristi da oznai
poetak definicije klase. Uoiete brzo da se mnogo
vitiastih zagrada koristi u Java programima!
Sledei red je:
public static void main(String[] args)
{

U ovom redu se kreira glavni metod koji smo ranije


pominjali. Nemojte se za sada brinuti ta sve te rei znae.
Bitno je da uoite da tako poinje glavni metod u kome
piemo Java kd koji elimo da se izvri kada se program
pokrene. U ovom kursu uglavnom emo stavljati sav na kd
u glavni metod. Uoite da se druga leva vitiasta zagrada
koristi za poetak definisanja glavnog metoda.
Jedini Java iskaz (naredba; engl. statement) u glavnom
metodu je:
System.out.println("Welcome to Java for Kids!");
Podsetite se kako je izgledalo izvravanje Welcome projekta
u prethodnom nastavku. Kada ste ga pokrenuli, videli ste u
izlaznom prozoru poruku koja je glasila - Welcome to Java
for Kids! Prethodni red koda je ispisao tu poruku. U tom
redu System je klasa ugraena u Javu, out je objekat klase
(koji se odnosi na izlazni prozor (engl. output window)). Re
println (izgovara se print line) prikazuje jedan red teksta.
Tekst koji se prikazuje je pod navodnicima. Uoite da se
iskaz zavrava sa (;) u Javi, takoe, postoji mnogo takazareza! U ovom prostom primeru, glavni metod ima samo
jedan iskaz. Naravno, naredni primeri e imati mnogo vie
iskaza. Metodi su mesto gde Java programi obavljaju
zadatke. Pored pisanja sopstvenih metoda, moete koristiti

bilo koji od mnogobrojnih metoda koji su ugraeni u Java


jezik. Uiete o tim metodima kako bude kurs odmicao.
Posle tog reda slede dva reda od kojih svaki ima desnu
vitiastu zagradu (}). Prva zagrada okonava glavni metod,
dok druga okonava definiciju klase. Bie potrebno da uvek
pazite da imate u Java programima vitiaste zagrade
uparene, tj. da svakoj levoj odgovara jedna desna.
Mada je ovo veoma kratak i prost program, on ilustruje koje
su glavne komponente u Java programu. Potrebno vam je
zaglavlje programa, definicija klase i glavni metod. Takoe,
potrebno je da vodite rauna i snimite datoteku klase pod
istim nazivom pod kojim je klasa definisana. Ta datoteka
ima oznaku tipa (tzv. ekstenziju) .java.
Neka pravila Java programiranja
Pogledajmo jo jednom kd Welcome projekta kako
bismo ukazali na neka osnovna pravila Java programiranja.
Evo tog koda:
/*
* Welcome Project
* Java for Kids
* KIDware (206) 721-2556
*/

public class Welcome


{
public static void main(String[] args)
{
System.out.println("Welcome to Java for Kids!");
}
}
A evo i pravila:
Java kd zahteva perfekciju. Sve kljune rei moraju
biti korektno zapisane. Ako napiete printline umesto
println, ovek moe da zna na ta ste mislili, ali
raunar ne.
Java razlikuje mala i velika slova (engl. case-sensitive),
to znai da se velika i mala slova smatraju razliitim
znakovima. Kada piete kd, vodite rauna kako
koristite slova. U Javi rei Main i main su potpuno
razliite.
Java ignorie beline (engl. white space; blankove).
esto ete koristiti beline da bi va kd izgledao
itljivije.
Vitiaste zagrade se koriste za grupisanje. One
markiraju poetak i zavretak programskih sekcija.
Vodite rauna da vai Java programi imaju jednak broj
levih i desnih vitiastih zagrada. Sekcija koda izmeu
dve odgovarajue vitiaste zagrade naziva se blok.

Dobra praksa je da uvlaite kd bloka prilikom pisanja


programa. To olakava praenje koda. Uoite da je u
datom primeru svaki blok uvuen tri blanka (beline).
Ako koristite JCreator, on e automatski umesto vas
uvlaiti kd u blokovima.
Svaki Java iskaz se zavrava taka-zarezom. Iskaz je
programski izraz koji proizvodi neku akciju (na primer,
ranije pomenuti iskaz Println). Uoite da nisu svi Java
izrazi iskazi (na primer, red koji definie glavni metod
nema taku-zarez).
Nauiete jo o Java programiranju ako nastavite da pratite
ovaj kurs.

Pripremio Dragan Markovi

Java za mlade programere (5)

Kreiranje Java projekata pomou JCreatora


Na ovom asu poeemo da uimo programski jezik Java
i da piemo svoje Java programe. Da bi ste mogli da to uradite
potrebno je da znate kako se kreira novi projekat pomou
JCreatora. Takoe, potrebno je da znate kako da dodate
datoteke svom projektu. Sada u pokazati kako se to radi.
Ponovo emo kreirati projekt Welcome u vaem radnom
prostoru.
Ako Jcreator nije pokrenut, pokrenite ga. Radni prostor
koji sadri projekt Welcome trebalo bi da je jo uvek tu.
Ukloniemo ovaj radni prostor i kreirati novi. (Treba samo da
koristite radni prostor JK Code kada elite da referencirate kd
vezan za ovo uputstvo. Za sve svoje projekte, koristiete
sopstveni radni prostor). Da biste uklonili radni prostor, o
oblasti za prikaz radnog prostora oznaite tekui radni prostor
(JK Code). U glavnom meniju izaberite File a zatim Close
Workspace.
Sada, kreirajte svoj radni prostor dodelite mu naziv
MyJavaWorkspace. U glavnom meniju izaberite File a zatim
New. Kada se pojavi prozor New, kliknite na jeziak
Workspaces :

Kliknite na () pored okvira Location i izaberite c:\ disk (ili


neku drugu lokaciju). Upiite MyJavaWorkspace u polje
Workspace name. Kliknite miem na dugme OK i kreirae se
prazan radni prostor u folderu pod nazivom
MyJavaWorkspace na vaem disku c: . Ovaj novi radni
prostor pojavljuje se u prikazu radnog prostora programa
JCreator:

Moemo sada da dodamo projekt u radni prostor. Obratite


panju na ove korake poto ete ovo ponavljati svaki put kada
je potrebno da kreirate novi Java projekt. Uradite desni klik u
prikazu radnog prostora i izaberite Add new Project :

Izaberite jeziak kartice Projects, zatim Empty Project i


upiite WelcomeProject u polje Project name (kao to je
prikazano). Kliknite na OK da biste dodali projekt.
Prozor za prikaz radnog prostora trebalo bi sada da
prikae projekt (WelcomeProject) u radnom prostoru:

Po proceduri, sada treba da dodamo datoteku (nau


datoteku sa Java programom) projektu. Oznaite
WelcomeProject levim klikom na naziv u prikazu radnog
prostora. Odaberite File iz glavnog menija JCreatora a zatim
stavku New. Pojavljuje se sledei prozor:

Kao to je prikazano, izaberite karticu Files, izaberite Java


File i upiite Welcome u polje Filename (dobro je da steknete
naviku da nazivi vaih datoteka imaju drugaije nazive od
foldera projekta i radnog prostora). Kliknite na OK.
Razvite WelcomeProject (kliknite na znak +) i videete
datoteku Welcome.java koja je dodata projektu. U oblasti za
prikaz datoteke desno od prikaza radnog prostora je editor gde
ete upisivati Welcome.java kd:
Oblast prikaza datoteke

Piite liniju po liniju koda i obratite panju da piete sve


kako je ovde dato (imajui u vidu pravila koja ste ranije
nauili). Evo koda jo jednom:
/*
* Java for Kids Welcome Program
*/
public class Welcome
{
public static void main(String[] args)
{
System.out.println("Welcome to Java for Kids!");
}
}
Kako piete uoiete da posle pisanja svake leve vitiaste
zagrade ({), JCreator editor automatski uvlai sledei red, a
im upiete odgovarajuu desnu vitiastu zagradu (}),
uvlaenje se povlai nazad za jedan nivo. To znai da editor
potuje pravilo uvlaenja svakog bloka koda. Inicijalno,
JCreator uvlai za 4 znaka (mesta) na svakom nivou. Da biste
promenili ovu vrednost, izaberite u glavnom meniju stavku
Configure a zatim Options. Odaberite Java Editor i upiite
novu vrednost za Tabs Size. Mi emo na ovom kursu koristiti
vrednost 2 a ne 4 (stvar linog ukusa).
Druga stvar koju treba da uoite je da editor koristi
razliite boje za razliite stvari u kodu. Zeleni tekst predstavlja
komentare. Kd je u crnoj boji a kljune (rezervisane) rei u
plavoj. Ova ema boja ponekda moe da vam pomogne da
otkrijete greke koje ste moda napravili prilikom kucanja.

Kada zavrite kucanje, trebalo bi da vidite:

Pokuajte da kompajlirate (prevedete) svoj program (izaberite


Build, zatim Compile Project, ili samo pritisnite taster
<F7>). Trebalo bi ubrzo da vidite rei Process completed.
Ako nije tako, proverite da li ste sve upisali kako je navedeno u
prethodnom listingu. Da vas podsetim, greke se ne toleriu.
Kada je va program kompajliran, moete ga aktivirati
biranjem opcije Build, zatim Execute Project (ili pritisnite
taster <F5>). Trebalo bi ponovo da vidite poruku Welcome to
Java for Kids! . Takoe, vidite i sami kako je zaista lako dobiti
Java program pomou JCreatora.
Snimanje Java projekata u JCreatoru
Pre nego to napustimo JCreator, potrebno je da znamo
kako se snimaju projekti koje smo napravili. Postoje dve stvari
koje treba razmotriti: snimanje projekata i snimanje radnih

prostora (foldera koji sadre projekte). Kadgod kompajlirate


i/ili izvravate Java projekt, JCreator automatiski snima i
izvorne datoteke i datoteke kompajliranog koda. Prema tome,
vei deo vremena ne morate brinuti o snimanju svojih
projekata Jcreator je to preuzeo na sebe. Ako elite da
snimite kd koji ste upravo napisali (pre kompajliranja),
jednostavno izaberite u glavnom meniju File a zatim kliknite na
Save All. Ili, samo kliknite na dugme Save All na paleti alatki:

Treba da snimite radni prostor svaki put kada napravite


promenu, na primer, ako dodate/obriete datoteke projekta ili
dodate/obriete projekte. Da snimite radni prostor odaberite u
glavnom meniju File a zatim Save Workspace. Ako pokuate
da napustite JCreator a niste snimili projekte ili radne prostore,
JCreator e vas preko okvira za dijalog upozoriti na to i pruiti
vam mogunost da snimite datoteke pre naputanja.
Kompajliranje i izvravanje Java programa
U primeru koji smo upravo zavrili, u tri koraka smo
obavili kreiranje i izvravanje Java programa:
Pisanje koda
Kompajliranje koda
Izvravanje koda

Vidimo da pisanje koda obuhvata potovanje uspostavljenih


pravila (mada emo stvarno poeti sa pisanjem sopstvenog
koda kasnije). Takoe, znamo kako da kompajliramo i
izvravamo program, ali ta se stvarno deava kada mi radimo
te dve stvari. Sada emo to razmotriti.
Da vas podsetim, jedna od velikih prednosti Jave je to e
Java programi raditi na raznorodnim mainama bez promena u
kodu. Kaemo da je Java nezavisna od platforme. Ova
nezavisnost je mogua zato to se Java program ne izvrava
direktno na vaem raunaru, ve na virtuelnom raunaru koji je
instaliran na vaem raunaru zajedno sa Java Software
Development Kitom (SDK). Taj virtuelni raunar se naziva Java
virtuelna maina. Pre nego to Java virtuelna maina moe
da razume va Java program, on mora da bude pretvoren ili
preveden u jezik koji ona razume. Ova konverzija se obavlja
kada kompajlirate svoj Java program. Kompajliranje Java
programa kreiradatoteku sa objektnim kodom koji Java
virtuelne maina moe da razume. Ta datoteka e imati oznaku
tipa datoteke (tzv. ekstenziju) .class. Na sledeoj slici je
grafiki prikazan proces kompajliranja:
Java program
(.java datoteka)

Java
kompajler

Java objektni kd
(.class datoteka)

Kada izvravate svoj Java program, ove .class datoteke


obrauje neto to se naziva Java interpreter unutar
virtuelne maine. Ovaj interpreter razgovara sa vaim

raunarom i prevodi vae Java naredbe u eljene rezulatate. To


je kao magija! Na sledeoj slici je grafiki prikazan proces
izvravanja programa:

Java objektni kd
(.class datoteka)

Java
virtuelna maina
(Java Interpreter)

Program na
vaem raunaru

Java za mlade programere (6)


JCreator i Java datoteke
Sada emo se upoznati kako su te sve informacije
vezane za strukturu programa, datoteke, kompajliranje i
izvravanje uklopljenje u JCreator, koji je nae razvojno
okruenje. Ranije smo videli da su Java projekti grupisani u
radne prostore. A projekti se sastoje od .java datoteka.
Koristei My Computer ili Windows Explorer, preimo u
folder koji sadri Welcome Project koji ste upravo
napravili, kompajlirali i izvrili. Trebalo bi da vidite sledee
datoteke:
Welcome.java
Welcome.class
WelcomeProject.jcp
src_welcomeproject.txt
Welcome.java je izvorni kd koji se pojjavljuje u oblasti za
prikaz datoteke JCreatora. Welcome.class je kompajlirana
verzija tog izvornog koda (Welcome.java) to je datoteka
koja je potrebna Java virtualnoj maini.
WelcomeProject.jcp je projektna datoteka Jcreatora koja
se koristi za evidenciju koje sve datoteke ine projekat a
src_welcomeproject.txt je druga datoteka Jcreatora koja

je potrebna za organizaciju. Pored toga, u foldeu vaeg


radnog prostora bie i datoteka:
MyJavaWorkspace.jcw
(Naravno, ovde se podrazumeva da ste radnom prostoru
dodelili naziv MyJavaWorkspace). To je jo jedna datoteka
Jcreatora koja se koristi za evidenciju projekata u radnom
prostoru JK Code.
Imajte na umu da su ovde prave Java datoteke samo
one koje imaju oznaku tipa .java i .class. Ostale datoteke
stvara i menja nae konkretno razvojno okruenje, u ovom
sluaju JCreator. Ako elite da delite svoj Java program sa
prijateljem ili da ga prebacite u neko drugo razvojno
okruenje, jedine datoteke koje treba da prebacite su .java
datoteke. Te datoteke moe da koristi svaki Java programer
ili programsko okruenje da bi napravio program koji moe
da se izvrava.
Kreiranje Java programa
Ranije sam rekao da Java naredba neto radi. U
primeru Welcome videli smo da naredba tampa neku
informaciju (Welcome to Java for Kids!). Svaki program

koji budemo pravili bie sainjen od vie Java naredbi koje


raunar treba da obradi. Pravljenje raunarskog programa
pomou Jave (ili bilo kog drugog jezika) je direktan proces.
Imate konkretan zadatak koji elite da raunar obavi za vas.
Saoptavate raunaru logian, proceduralan skup koraka
koje treba da preduzme da bi obavio zadatak.
Relativno je lako ispisati korake reenja na naem
govornom jeziku. Meutim, za nas je malo tee to saoptiti
raunaru na njegovom jeziku. Bilo bi zaista lepo kada bi
mogli samo da napiemo Zdravo raunaru, evo dva broja
saberi ih i kai mi koliki je zbir. ovek moe da razume ove
instrukcije, ali raunar ne moe. Zato? Prvo, raunaru je
potrebno da se kae na vrlo specifian nain kako da uradi
zadatak, tj. razlaganjem na logike korake. Za ovaj prost
primer sabiranja ti koraci bi bili:
1. Zadaj vrednost prvog broja.
2. Zadaj vrednost drugog broja.
3. Saberi prvi broj sa drugim, rezultat je zbir, tj. trei
broj.
4. Saopti zbir.
Sada je potrebno da to saoptimo raunaru na njegovom
jeziku. Prevodimo svaki korak reenja u naredbu (ili

naredbe) raunarskog jezika. Na ovom kursu raunarski


jezik je Java. Da bi mogli da kaete raunaru kako da uradi
bilo koji zadatak, potrebno je dobro da znate Java
programski jezik. Vae znanje Jave e vam omoguiti da
prevedete programske korake u jezik koji raunar moe da
razume.
Druga stvar o kojoj treba da vodite rauna kada piete
Java programe je logika i preciznost. Raunar e slediti vae
instrukcije ak i kada su pogrene! Prema tome, kako
budete napredovali u uenju Jave tako u vam objasniti
potrebu da budete precizni. Kada jednom napiete precizan i
logian Java kd, raunar e veoma brzo i dobro uraditi svoj
posao. A on moe da uradi veoma zanimljive stvari.
Pogledajmo par primera pisanja programerskih zadataka kao
niz koraka za ilustraciju nekih stvari koje raunar moe da
uradi.
ta treba da uradite ako va ef zatrai od vas
prosenu ocenu sa testa koji je radilo 352 uenika vae
kole? Koraci koje treba da uradite su sledei:
1. Odredite ocenu svakog uenika.
2. Saberete svih 352 ocene da bi dobili sumu.
3. Podelite sumu sa 352 da biste dobili prosenu ocenu.

4. Saoptite efu prosenu ocenu.


Nije tako teko, zar ne? Uoite da se drugi korak moe dalje
razdeliti u manje korake. Da biste sabrali 352 ocene treba
da:
1. Ponete sa prvom ocenom.
2. Dodate drugu ocenu, zatim treu, pa etvrtu itd.
3. Stanete kada su sve ocene dodate.
U ovim koracima raunar bi trebalo da radi isti posao
(dodavanje broja) 352 puta. Raunari su veoma dobri kod
poslova koji se ponavljaju videete kasnije da se ovi
poslovi ponavljanja nazivaju petlje (engl. looping). Kasnije
ete pisati programski kd za ovaj primer.
Raunari su veoma dobri kod igranja igara sa vama
(zato su video igre toliko popularne). Da li ste ikada igrali
neku akcionu igricu tipa War? Vi i drugi igra uzimate karte
iz standardnog pila. Onak koji ima jau kartu nosi kartu
drugog igraa. Zatim svaki uzima drugu kartu i nastavlja se
proces uporeivanja sve dok u pilu ima karata. Ko sakupi
vie karata kada se igra zavri je pobednik. Igranje ove igre
zahteva sledee korake:

1. Promeati pil karata.


2. Dati kartu prvom igrau.
3. Dati kartu drugom igrau.
4. Odrediti ija karta je jaa i proglasiti pobednika.
5. Ponavljati proces davanja (deljenja) karata igraima
sve dok ima karti u pilu.
Stvari su sada neto komplikovanije ali raunar je sposoban
da obavi taj zadatak. Prvi korak zahteva da raunar promea
pil karata. Kako da saoptite raunaru da to uradi? Dobro,
pre nego to se kurs zavri saznaete i to. Za sada, bitno je
da znate da je u pitanju nekoliko programskih koraka.
Smestiemo Java program za takav specijalan zadatak u
sopstvenu oblast koja se naziva metod (slino glavnom
metodu sa kojim smo se susreli u primeru Welcome). Ovo
omoguava da neto lake pratimo program a takoe i da
koristimo ovaj kd u drugim programima, to je prednost
objektno orijentisanog programiranja. Uoite da korak 4
zahteva od raunara da donese odluku utvrivanje koja je
karta jaa. Raunari su veoma dobri kod donoenja odluka.
Na kraju, korak 5 trai ponavljanje deljenja karata sve dok
ih ima u pilu drugi primer petlje. Ovaj program ete,
takoe, praviti kasnije.

Ako svi ovi koncepti nisu u ovom trenutku jasni, to je u


redu. Oni e postati jasniji kako kurs bude odmicao. eleo
sam samo da vam dam neke ideje koje moete da
realizujete kao Java programe.
Da se ukratko podsetimo, za svaki Java program koji
pravite, najbolje je prvo da napiete niz logikih koraka koje
elite da raunar sledi kod obavljanja poslova koji su
potrebni vaem programu. Zatim da pretvorite te korake u
Java jezik to e dati va Java program to je zaista prosto.
Sledei as e poeti sa osnovnim elementima Jave, a zatim
ete uiti sve vie i vie o Javi. Poeemo polako ali ete na
kraju kursa sasvim solidno govoriti Javu.

Java za mlade programere (7)


Posle dueg vremena stigli smo i do sri Java projekta Java jezika. U ovoj lekciji bie rei o promenljivama (nazivu,
tipu, deklarisanju), dodeljivanjima, aritmetikim operacijama i
tehnikama za rad sa konkretnim tipom promenljive koja se
naziva string.
Promenljive
Svi raunari rade sa nekom vrstom informacije. Brojevi,
tekst, datumi i slike su uobiajeni tipovi informacija sa kojima
oni rade. Raunarskim programima je potreban prostor da
smeste informacije dok sa njima rade. ta ako nam je potrebno
da znamo koliko kota deset banana ako je cena jedne 25
dinara? Nama je potreban prostor da smestimo broj banana,
cenu banane i rezultat mnoenja ta dva broja. Da bismo
smestili takve informacije, koristimo neto to se naziva
promenljiva. Ona se naziva promenljiva zato to informacija
tu smetena moe da se menja za vreme izvravanja
programa. Promenljive su primarni metod za premetanje
informacija u Java projektu. Prilikom korienja promenljivih
odreena pravila se moraju potovati.
Nazivi promenljivih

Svakoj promenljivoj koju koristite u svom projektu morate


dodeliti naziv (ime). Pravila za imenovanje promenljivih su:
Mogu se koristiti samo slova, brojevi i znak podvlake (_)
(mada se on vrlo retko koristi).
Prvi znak mora biti slovo.
Ne mogu se koristiti slubene (rezervisane) rei Java
programskog jezika (na primer, ne moete dodeliti
promenljivoj naziv println ili System).
Po konvenciji, nazivi promenljivih poinju sa malim slovom. Ako
se naziv promenljive sastoji od vie rei, tada su rei spojene a
svaka re posle prve poinje sa velikim slovom.
Najvanije pravilo je da se koriste nazivi promenljivih koji
neto znae. Trebalo bi da moete da identifikujete informaciju
smetenu u promenljivoj po nazivu promenljive. Za na primer
sa bananama, dobri nazivi bi bili:
Koliina

Naziv promenljive

Jedinina cena banane

bananaCost

Broj poruenih banana

numberBananas

Cena svih banana

totalBananaCost

Uoite konvenciju, tj. naziv svake promenljive poinje sa malim


slovom a velikim slovom poinje svaka potonja re u nazivu
promenljive.

Tipovi promenljivih
Potrebno je da znamo tip informacije koju uva (dri)
svaka promenljiva. Da li sadri broj? Da li broj ima decimalnu
taku (zarez)? Da li sadri tekstualnu informaciju? Pogledajmo
neke tipove promenljivih.
Prva promenljiva je tipa int (integer). Ovaj tip promenljive
se koristi za predstavljanje celih, ne-decimalnih, brojeva.
Primeri tih brojeva su:
1

-20

4000

Uoite da piemo 4,000 (anglosaksonski oblik zapisivanja


brojeva) kao 4000 u Javi ne moemo koristiti zareze kod
velikih brojeva. U naem primeru sa bananama,
numberBananas treba da bude promenljiva tipa int.
ta ako promenljiva koju elimo da koristimo treba da
uva broj koji ima decimalnu taku (tj. decimalni zarez). Na
ovom kursu, takve promenljive e biti tipa double. U
tehnikom argonu kaemo da su takve promenljive dvostruke
preciznosti (double-precision), brojevi sa pokretnim zarezom
(floating point numbers decimalna taka je stvar koja se
pomera). Sve to vi treba da znate o promenljivama tipa

double je da one dre brojeve sa decimalnom takom. Primeri


tih brojeva su:
-1.25

3.14159

22.7

U naem primeru sa bananama, promenljive bananaCost i


totalBananaCost treba da budu promenljive tipa double.
U Java programiranju se koristi i bulov (boolean) tip
promenljive. Taj tip je dobio naziv po poznatom matematiaru
(Boole). Moe da ima jednu od dve vrednosti: true (tano) ili
false (netano). Videemo da su promenljive tog tipa osnova
raunarevih sposobnosti za donoenje odluka. Ako elite da
znate da li je banana trula, moete imenovati bulovu
promenljivu isBananaRotten. Ako je to tano, banana je
zaista trula.
Sledei tip promenljive koji koristimo nije uopte tip.
Preciznije, to je Java klasa String klasa (injenica je da
poinje sa velikim slovom). String promenljiva je upravo to
ona uva string (nisku, listu) razliitih znakova. String moe
biti ima, string brojeva, reenica, pasus, bilo koji znaci uoptel.
esto, string nee sadrati bilo kakav znak (prazan string). Mi
emo mnogo koristiti stringove u Javi, zato treba dobro da ih
znate. Stringovi su uvek omeeni (ogranieni) navodnicima.
Primeri za string su:

I am a Java programmer

012345

Title

Author
Deklarisanje promenljivih
Kada imenujete promenljivu i odredite kog tipa elite da
bude, morate te informacije proslediti Java projektu. Potrebno
je da deklariemo svoje promenljive. Java naredba koja se
koristi za deklarisanje promenljive imenovane variableName a
tipa type je:
type variableName;
Nemojte zaboraviti taku-zarez (;) svaka Java naredba se
zavrava sa time. Potrebna nam je naredba deklaracije kao ova
za svaku promenljivu u naem projektu. To izgleda mnogo
zametno, ali vredi potruditi se. Odgovarajue deklarisanje
promenljivih olakava programiranje, smanjuje mogunost
pojavljivanja greaka i olakava menjanje programa.
Gde treba da se stave deklaracije promenljivih? U prvih
nekolikoa projekata, pisaemo samo kd unutar glavnog
metoda (main method) Java projekta. Stoga e deklaracije
promenljivih biti smetene posle reda u kome je definisan
glavni metod. Usled toga promenljive imaju lokalni karakter
(local scope), to znai da su na raspolaganju samo metodu u
kome su definisane. Ovaj nivo oblasti definisanosti je sasvim

zadovoljavajui za nae poetne projekte. Primeri deklaracije


promenljivih:
int numberBananas;
double bananaCost;
double totalBananaCost;
boolean isBananaRotten;
String myBananaDescription;
Uoite da su deklaracije int, double i boolean napisane malim
slovima, a String velikim slovom.
Java dozvoljava da deklariete vie promenljivih istog tipa
u jednom redu razdvajajui nazive sa zarezom. Na primer,
moemo kombinovati dve od prethodnih deklaracija (za double
promenljive) u:
double bananaCost, totalBananaCost;

U glavnom metodu Java programa, ove deklaracije


promenljivih treba da se pojave na vrhu:
public static void main(String[] args)
{
int numberBananas;
double bananaCost, totalBananaCost;
boolean isBananaRotten;
String myBananaDescription;
[Ostatak glavnog metoda]

}
Sada emo razmotriti kako se dodeljuju promenljivama
vrednosti.
Naredba dodeljivanja
Najprostija i najvie koriena naredba u Javi je naredba
dodeljivanja (assignment statement). Ta naredba ima oblik:
variableName = variableValue;
Uoite da samo jedna promenljiva moe biti na levoj strani
operatora dodeljivanja (=). Evo nekoliko prostih primera
dodeljivanja korienjem nae banana promenljive:
numberOfBananas = 22;
bananaCost = 0.27;
isBananaRotten = false;
myBananaDescription = Yes, we have no bananas!;
Stvarne vrednosti ovde dodeljene promenljivama nazivaju se
literali, poto one literarno pokazuju svoje vrednosti.
Operator dodeljivanja moete prepoznati kao znak jednako
koji koristite u aritmetici, ali se on ne naziva tako u
raunarskom programiranju. Zato? U stvari, desna strana
(variableValue u naem primeru) operatora dodeljivanja nije
ograniena na literale. Svaki ispravan Java izraz, sa bilo kojim

brojem promenljivih ili drugih vrednosti, moe biti sa desne


strana operatora. U tom sluaju, Java prvo izraunava
variableValue, a zatim dodeljuje rezultat variableName. Ovo
je veoma vaan koncept programiranja i treba da ga zapamtite
izraunajte desnu stranu, a zatim dodelite levoj strani.
Takoe je vano da imate na umu da ako tip od variableValue
ne odgovara tipu od variableName, Java e konvertovati (ako
je to mogue) variableValue u odgovarajui tip. Na primer, ako
je variableName tipa int (celobrojna) a variableValue je
izraunato 25.6, variableName e imati vrednost 25 (uzima se
celobrojna vrednost). Pogledajmo sada neke operatore koji
mogu da pomognu kod izraunavanja Java izraza.
Aritmetiki operatori
Jedna od stvari u kojoj su raunarski programi jako dobri
je aritmetika. Oni mogu veoma brzo da sabiraju, oduzimaju,
mnoe i dele brojeve. Mi treba da nauimo kako da napravimo
da na Java projekt radi aritmetiku. Postoji pet aritmetikih
operatora koje emo koristiti iz Java jezika.
Sabiranje se obavlja pomou znaka plus (+) a
oduzimanje se obavlja pomou znaka minus (-). Evo nekoliko
prostih primera:
Operacija

Primer

Rezultat

Sabiranje

7+2

Sabiranje

3+8

11

Oduzimanje

6-4

Oduzimanje

11 - 7

Mnoenje se obavlja pomou znaka zvezdice (*) a


deljenje se obavlja pomou znaka u vidu kose crte (/). Evo
primera:
Operacija

Primer

Rezultat

Mnoenje

8*4

32

Mnoenje

2 * 12

24

Deljenje

12 / 2

Deljenje

42 / 6

Siguran sam da ste radili sabiranje, oduzimanje, mnoenje i


deljenje i pre nego to ste razumeli kako svaka od tih operacija
radi.
Ovde emo koristiti jo jedan operator koji se naziva
operator ostatka (%). Taj operator daje ostatak koji se dobija
prilikom deljenja dva cela broja. Moda vam to sada nee biti
jasno, ali taj operator se mnogo koristi u raunarskom
programiranju. Evo primera:
Primer

Rezultat deljenja

Ostatak - rezultat

7%4

1 ostatak 3

14 % 3

4 ostatak 2

25 % 5

5 ostatak 0

Prouite ove primere kako biste razumeli kako operator ostatka


radi u Javi.
ta se deava ako naredba dodeljivanja ima vie od
jednog aritmetikog operatora? Da li to neto menja?
Pogledajmo primer:
7+3*4
Koji je rezultat? Zavisi kako raunate. Ako krenete sa leva na
desno i prvo saberete 7 i 3, zatim pomnoite sa 4, rezultat je
40. Ako prvo pomnoite 3 i 4, zatim saberete 7, rezultat je 19.
Konfuzija? Meutim, Java spreava mogunost pojave konfuzije
svojim pravilima prvenstva (prioriteta, engl. precedence). To
znai da postoji odreeni redosled po kome se aritmetiki
operatori primenjuju. Taj redosled je sledei:
1. Mnoenje (*) i deljenje (/)
2. Ostatak (%)
3. Sabiranje (+) i oduzimanje (-)
Prema tome, kod naredbe dodeljivanja prvo se urade sva
mnoenja i deljenja, zatim operacija ostatka i na kraju,
sabiranja i oduzimanja. U naem primeru (7 + 3 * 4),

mnoenje e se uraditi pre sabiranja tako da e rezultat koji


daje Java biti 19.
Ako dva operatora imaju isti nivo prioriteta, na primer,
mnoenje i deljenje, operacije se u naredbi dodeljivanja
obavljaju sa leva na desno. Primer:
24 / 2 * 3
Prvo se obavlja deljenje (24 / 2) koje daje 12, zatim mnoenje
(12 * 3), tako da je rezultat 36. A ta ako elimo da uradimo
mnoenje pre deljenja da li je to mogue? Da - pomou Java
operatora za grupisanje - zagrade (). Pomou zagrada u
naredbi dodeljivanja dajemo prioritet operacijama u zagradama
i one se prve obavljaju. Prema tome, ako napiemo na primer
kao:
24 / (2 * 3)
mnoenje (2 * 3) e biti prvo obavljeno, to daje 6, zatim
deljenje (24 / 6), koje daje eljeni rezultat, 4. Moete koristiti
zagrada koliko hoete, ali one se uvek moraju koristiti u paru
svaka leva zagrada mora imati svoju desnu. Ako ugnjedavate
zagrade, tj. imate jedan skup unutar drugog, izraunavanje
poinje iz najdubljeg skupa i ide ka spolja. Evo primera:
((2 + 4) * 6) + 7

Prvo se radi sabiranje 2 i 4, to daje 6, koje se mnoi sa 6, i


rezultat je 36. Taj rezultat se zatim sabira sa 7, tako da je
konani rezultat 43. Moete koristiti zagrade ak i ako one ne
menjaju prioritet. esto, one se koriste da bi izraz bio
razumljiviji.
Evo nekoliko primera Java naredbi dodeljivanja sa
aritmetikim operatorima:
totalBananaCost = numberBananas * bananaCost;
numberOfWeeks = numberOfDays / 7;
averageScore = (score1 + score2 + score3) / 3.0;
Ovde treba da uoite nekoliko stvari. Prvo, uoite da zagrade
kod averageScore izraunavanja primoravaju Javu da sabere
tri rezultata pre deljenja sa 3. Takoe, uoite upotrebu belina,
razmaka koji odvajaju operatore od promenljivih. To je
uobiajena praksa u Javi koja pomae da kd bude itljiviji. Na
ovom kursu imaete prilike da se susretnete sa mnotvom
primera naredbi dodeljivanja.

Java za mlade programere (8)


Nadovezivanje stringova
Moemo da primenimo aritmetike operatore na
numerike promenljive (tip int i tip double). Takoe, moe
se operisati i sa string promenljivama. esto u Java
projektima uzimate string promenljivu sa jednog mesta i
dodajete je na kraj drugog stringa. Ovo se naziva
nadovezivanje (engl. concatenation) stringova. Operator
nadovezivanja je znak plus (+) i lako se koristi. Na primer:
newString = Java for Kids + is Fun!;
Posle ove naredbe, string promenljiva newString e imati
vrednost Java for Kids is Fun!.
Uoite da je operator nadovezivanja identian sa
operatorom sabiranja. Potrebno je da uvek obezbedimo da
ne doe do konfuzije kada koristimo oba operatora. String
promenljive ine veliki deo Jave. Kako se budete razvijali
kao programeri bie potrebno da postanete bliski sa
stringovima i operacijama sa njima.
Komentari

Poeljno je da uvek sledite odgovarajua pravila


programiranja kada piete svoj Java kd. Jedno od tih
pravila je da na odgovarajui nain komentariete svoj kd.
Moete da stavite ne-izvrne naredbe (koje raunar ignorie)
u svoj kd koje objanjavaju ta va program radi. Ovi
komentari mogu biti od pomoi u razumevanju vaeg koda.
Takoe, oni olakavaju budue promene vaeg koda.
Da biste stavili komentar u svoj kd, koristite simbol za
komentar, dve kose crte (//). Sve to je napisano posle
simbola za komentar raunar e ignorisati. Moete imati kao
komentar poseban ceo red Java koda, kao u ovom sluaju:
// Postavi broj banana
numberBananas = 14;
Ili, moete staviti komentar u isti red sa naredbom
dodeljivanja:
numberBananas = 14; // Postavi broj banana
Takoe, moete imati komentar koji zahvata vie redova.
Ponite komentar sa simbolom (/*) i zavrite ga sa
simbolom (*/):

/*
Ovo je veoma dug komentar
Zauzima dva cela reda!!
*/
Vi, kao programer, treba sami da odluite koliko elite da
komentariete svoj kd. Pokuau u projektima koji se budu
ovde razmatrali da obezbedim adekvatne komentare.
Programski izlaz
Skoro da ste spremni da napravite svoj prvi Java
program. Ali, potrebna je jo jedna stvar. Upoznati smo sa
kao se imenuju i deklariu promenljive i kako se radi
matematika sa njima, ali kada dobijemo rezultate, kako ti
rezultati mogu da budu prikazani? Na ovom asu
koristiemo metod koji ste ve videli u naem malom
programu Welcome, Java metod println (da vas podsetim,
izgovara se print lajn). Ono to taj metod radi je
tampanje stringa rezultata u jednom redu:
System.out.println(stringValue);
U ovom izrazu, stringValue mogla bi biti promenljiva tipa
String koja se negde izraunava (moda pomou operatora
nadovezivanja) ili literal (stvarna vrednost). U primeru
Welcome, mi smo koristili literal:

System.out.println(Welcome to Java for Kids!);


I videli da se kao izlaz na ekranu pojavilo Welcome to Java
for Kids!
ta ako elite da izlaz bude numerika informacija? To
je sasvim lako. Metod println e automatski konvertovati
numeriku vrednost u string za potrebe izlaza. Na primer,
pogledajte ovaj mali segment koda:
numberBananas = 45;
System.out.println(numberBananas);
Ako pokrenete izvravanje ovog segmenta, na ekranu e se
kao izlaz pojaviti 45.
Takoe, moete kombinovati tekstualnu informaciju sa
numerikom informacijom pomou operatora nadovezivanja.
Na primer:
numberBananas = 45;
System.out.println(Number of Bananas is +
numberBananas);

tampae na ekranu kao izlaz Number of Bananas is 45.


Numeriki podatak (numberOfBananas) konvertovan je u
string pre nego to je nadovezan na tekstualni podatak.
Prema tome, prilino je lako kao izlaz dobiti tekstualnu i
numeriku informaciju. Budite spremni na to da se ponekad
mogu pojaviti i izvesni problemi. Da vas podsetim na
injenicu da je operator nadovezivanja identian sa
aritmetikim operatororm sabiranja. Pogledajte sledei
segment koda:
numberBananas = 32;
numberApples = 22;
System.out.println(Pieces of fruit +
numberBananas + numberApples);
Moda mislite da sa ovom naredbom tampate ukupan broj
voa (numberBananas + numberApples = 54). Meutim,
ako izvrite ovaj kd, dobiete Pieces of fruit 3222. Ono
to se desilo je da je Java konvertovala oba numerika
podatka u string pre nego to je obavljeno sabiranje. Tada
znak plus koji ih razdvaja ima ulogu operatora
nadovezivanja i stoga se dobija 3222. Da biste tampali
sumu, potrebno je da pomou zagrada izvedete prisilno
numeriko sabiranje:
numberBananas = 32;

numberApples = 22;
System.out.println(Pieces of fruit +
(numberBananas + numberApples));
U ovom sluaju, dve numerike vrednosti se sumiraju pre
konvertovanja u string i dobija se eljeni izlaz Pieces of
fruit 54. Prema tome, vidimo da metod println nudi
pogodan nain za dobijanje izlaza i sa numerikom i sa
tekstualnom informacijom, ali mora korektno da se koristi.
Uoite jo jednu stvar u ovom primeru. Zadnji red koda
izgleda kao da ima duinu za dva reda! Ovo je se pojavilo
zbog osobine programa za obradu teksta da prelama red. U
pravom Java programu taj red e se pojaviti kako je i
ukucan, kao jedan red. Imajte to na umu dok itate tekstove
ovog serrijala.

Java za mlade programere (9)


Projekt Sendvi urka
Va razred je odluio da napravi urku. Napravljena su
dva veoma velika podmornica sendvia i va zadatak je da
definiete koliko svaki gost (student) moe da pojede. Svakako,
to moete da uradite pomou kalkulatora, ali ovoga puta emo
koristiti Javu. Projekat emo snimiti pod nazivom FirstProject
u folderu ovog kursa (\JavaKids\JK Code).
Dizajniranje projekta
Predpostavimo da znate duinu svakog podmornica
sendvia. Da bismo olakali seenje, rei emo da e svaki gost
dobiti celi broj ina (ili centimetara) od sendvia (bez
decimala). Uz ovaj podatak, moete izraunati koliko gostiju se
moe nahraniti od jednog sendvia. Ako je ukupni broj vei od
broja gostiju, tj. aka u razredu, svi e jesti i sve je u redu. A
ako nije tako, moraete da uradite podeavanje. Koraci u
programu bi trebalo da budu sledei:
1. Postaviti vrednost za broj ina sendvia koje gost moe
pojesti.
2. Odrediti duinu oba sendvia.
3. Odrediti koliko gostiju moe da se nahrani od svakog
sendvia.

4. Poveati ili smanjiti broj ina sve dok se ne postigne da


ceo razred, tj. svi gosti mogu da jedu.
Prevedimo svaki od ovih koraka u Java kd i postepeno
izgradimo na projekt. Poto je ovo va prvi projekt,
razmotriemo svaki korak (kreiranje novog projekta i
dodavanje datoteke (fajla)) i pisaemo i diskutovati kd.
Razvoj projekta
Pokrenite JCreator i proverite da li je va radni prostor
(MyJavaWorkspace) otvoren. WelcomeProject bi trebalo da
je tu. Ako nema vaeg radnog prostora, kliknite miem na File,
zatim Open Workspace da bist ga otvorili. Kreirajte novi
projekt:
Kliknite miem na File
Izaberite New
Kliknite miem na jeziak Projects
Selektujte Empty Project
Dodelite naziv: FirstProject
Prozor vaeg Jcreatora trebalo bi da ima sledei izgled:

Kliknite na dugme OK. Uradite desni klik nad projektom


FirstProject u prikazu radnog prostora i selektujte Sets as
Active Project.

Dodajte fajl projektu:


Kliknite miem na File
Izaberite New
Kliknite na jeziak Files
Selektujte Java File
Dodelite naziv: SubSandwich
Prozor vaeg Jcreatora trebalo bi da ima sledei izgled:

Kliknite na OK i prazan fajl bi trebalo da se pojavi u oblasti


prikaza fajla. To je mesto gde ete upisivati svoj kd.

Prvo, upiite sledee zaglavlje kao vieredni komentar:


/*
* Sub Sandwich Project
* Java for Kids
*/
Sada, upiite u red definiciju klase i levu vitiastu zagradu za
otvaranje klase ({). Da vas podsetim, zagrade se koriste za
definisanje blokova sa kodom:
public class SubSandwich
{
Sada sledi definicija glavnog metoda i njegova pripadna
zagrada:
public static void main(String[] args)
{
Uoite, kako upisujete nove blokove koda, JCreator uvlai
odgovarajue blokove. Proverite da piete svaki red tano kako
je prikazano. Za raunarsko programiranje vezano je mnogo
kucanja korisno je da pohaate kurs daktilografije kako biste
usavrili kucaku vetinu. Dobra tehnika kucanja znai bre i
bez greaka kucanje, a time i vai Java programi nee imati
kucake greke.
Spremni ste da ponete da piete Java kd. Koristiemo u
ovom programu pet promenljivih: jednu za to koliko svaki
student moe da pojede, dve za duine sendvia, i dve za to

koliko gostiju moe da se nahrani od jednog sendvia. Sve


promenljive e biti celobrojnog (integer) tipa. Upiite sada
njihove deklaracije (svaku deklaraciju zavrite sa znakom
taka-zarez):
int inchesPerStudent;
int lengthSandwich1, lengthSandwich2;
int students1, students2;

Postavite vrednosti za neke promenljive (takoe, stavite


komentar za ono to radite):
// set values
inchesPerStudent = 5;
lengthSandwich1 = 114;
lengthSandwich2 = 93;
Mi smo postavili navedene vrednosti, vi moete postaviti neke
druge ako elite. Uoite da smo pretpostavili da svaki gost
moe da pojede 5 ina od sendvia.
Zatim, pomou obinog deljenja raunamo koliko gostiju
moe da se hrani iz svakog sendvia:
// odredite koliko gostiju moe da se hrani iz svakog --//sendvia
students1 = lengthSandwich1 / inchesPerStudent;
students2 = lengthSandwich2 / inchesPerStudent;
Uoite da e students1 i students2 biti (kako smo eleli) celi
(integer) brojevi. Prikaite rezultate pomou metoda println:
// ispii rezulatet
System.out.println("Letting each student eat " +
inchesPerStudent + " inches");
System.out.println((students1 + students2) + " students
can eat these two sandwiches!");
Uoite kako nadovezivanje stringova funkcionie. Takoe,
uoite da sumiramo broj gostiju pre ispisivanja. Na kraju,

zavrite program sa dve desne zagrade (}), jednom za


zatvaranje metoda i drugom za zatvaranje klase.

Konani kd u JCreatoru treba da ima sledei oblik:


/*
* Sub Sandwich Project
* Java for Kids
*/
public class SubSandwich
{
public static void main(String[] args)
{
int inchesPerStudent;
int lengthSandwich1, lengthSandwich2;
int students1, students2;
// set values
inchesPerStudent = 5;
lengthSandwich1 = 114;
lengthSandwich2 = 93;
// determine how many students can eat each
sandwich
students1 = lengthSandwich1 / inchesPerStudent;
students2 = lengthSandwich2 / inchesPerStudent;
// print results
System.out.println("Letting each student eat " +
inChesPerStudent + " inches");
System.out.println((students1 + students2) + "
students can eat these two sandwiches!");
}
}
Dva puta proverite da ste svaki red upisali kako treba.

Java za mlade programere (10)


Pokrenite projekt
Snimite svoj projekt (kliknite miem na dugme Save
All na paleti alatki). Kompajlirajte svoj kd tako to ete
pritisnuti taster <F7>, ili izaberite opciju Build iz glavnog
menija i kliknite na stavku Compile Project. Treba da
dobijete poruku Process completed. Ako se to ne desi,
bilo koja poruka o greci koja se pojavi verovatno e
ukazivati na greku u kucanju koda. Jo jednom proverite
svoj kd taka-zarez postoje na odgovarajuim mestima
kao i znaci navoda, nema neslaganja kod imenovanja
promenljivih i funkcija.
Kada je kd kompajliran, pokrenite njegovo
izvravanje pritiskom na taster <F5>, ili izaberite u
glavnom meniju Build, zatim Execute Project. Na
ekranu bi trebalo da se pojavi sadraj prikazan na
sledeoj slici:

estitamo napisali ste svoj prvi Java program!!


Probajte jo neke kombinacije
Kod prethodnog izvravanja videli smo da 40 uenika
(studenata) moe da jede. ta ako treba da nahranite vie
ili manje osoba? Podesite promenljivu inchesPerStudent
i odredite broj osoba koje mogu da se nahrane za tu novu
vrednost. Posle svakog podeavanja (izmene), moraete
da ponovo kompajlirate i izvravate program.
Pretpostavimo da sendvii prilino kotaju po inu
veliine. Izmenimo program tako da on izraunava i cenu
sendvia. Odredite sa kolikom sumom novca svaki uenik
treba da uestvuje da bi pokrio trokove svog jela. Moete
koristiti double tip promenljive da bi mogli da koristite
decimale. Pokuajte sami da to uradite!
Poto smatramo da svaki uenik treba da pojede ceo
broj sendvia, moe da se desi da kod raunanja imamo
ostatke za svaki sendvi. Kako bi mogli da izraunamo tu
koliinu? To bi bila mala primena operatora ostatka koga
smo ranije upoznali. Treba samo malo kd prepraviti.
Prvo, definiimo promenljivu koja izraunava veliinu
ostatka:
int inchesLeftOver;
Sada je na redu kd koji izraunava vrednost:

// izracunava leftovers
inchesLeftOver = lengthSandwich1 %
inchesPerStudent + lengthSandwich2 %
inchesPerStudent;
System.out.println("Postoji " + inchesLeftOver + "
inca ostatka.");
Dodajte ovaj kd svom projektu, ponovo ga kompajlirajte
i izvrite. Da li vidite ukupni ostatak u vrednosti od 7 ina?
Da li znate zato kod raunanja inchesLeftOver nismo
sabrali obe duine sendvia pre primene operatora
ostatka?
Zakljuak
Jo jednom estitamo, zavrili ste svoj prvi Java
projekt. Nauili ste dosta o Java naredbama i
dodeljivanjima, pa i neto malo o aritmetici. Trebalo bi da
ste sada spremni za novi poduhvat, tj. projekat. Sledei
put emo uiti jo novih stvari i pozabaviti se detaljnije
Java projektima.

Java za mlade programere (11)


Dizajniranje projekta
Spremni smo da zaponemo prilino detaljan projekat u
Javi. Ovde e biti predloeni neki projekti a vi ete verovatni
imati i svoje ideje koje ete moda realizovati. Meutim, pre ne
go to ponemo projekat, nije loe da malo razmislimo o onome
to emo da radimo. Dobro razraena ideja, tj. dobro dizajniran
projekat, utedee kasnije mnogo vremana a i rezultati e biti
bolji.
Dobro dizajniranje projekta nije neto tako teko, to je
vie stvar dobre prakse. Osnovna ideja je da se kreira projekat
koji se lako koristi, lako razume i koji nema greaka. Morate
priznati, to ima smisla, zar ne? Zato potroite neko vreme na
razmiljanje o onome to elite da va projekat radi. Koje su
informacije potrebne vaem projektu? Da li raunar neke
informacije definie? Utvrdite koje programske korake treba da
sledite da biste ostvarili eljene zadatke.
Trudite se da Java kd u vaim metodima bude itljiv i
lako razumljiv. Ovo e biti kasnije od velike koristi kada budete
morali neto da menjate. Potujte opte prihvaena pravila
programiranja ta pravila ete saznati kako budete dalje uili
da programirate u Javi. Paljivo analaizirajte svoj kod kako bi

bio bez greaka. To moda zvui kao suvina opaska, ali


verujte da veina programa ima greke.
Jednostavnu ideju da program bude upotrebljiv, jasno
napisan i bez greaka, kao i lako izmenljiv nije uvek lako
postii. Paljivo planiranje i planiranje unapred pomae da se
taj cilj ostvari. Ovde emo pokuati da vam kod svakog
projekta koji ovde razmatramo damo potpun uvid u ono to se
deava. Uvek emo pokuati da vam objasnimo zato neto
radimo.

Druga bitna stvar kod dizajniranja projekta je da uvek


treba raditi u etapama, postepeno. Nemojte pokuavati da
izgradite ceo projekat odjednom i tek tada da ga testirate.
Takav pristup poveava mogunost pojavljivanja velikog broja
greaka. Zato radite po fazama, piite pomalo koda,
kompajlirajte ga i testirajte kako biste se uverili da radi kako
treba. Polako dodajte sve vie i vie koda. Posle svakog
dodavanja koda obavezno sledi testiranje. Nastavite sa tim
pristupom sve dok ne kompletirate svoj projekat. Brzo ete
uvideti da ovaj pristup laganog hoda kod kreiranja Java
projekta olakava programiranje.
Java jo jedna lekcija
Do sada smo nauili prilino toga o Javi. To je bilo
neophodno kako biste nauili osnovne koncepte i mogli da
ponete sa pisanjem svog prvog programa. Sada emo krenuti
dalje, nauiemo kako se inicijalizuju promenljive i neto o
matematikim funkcijama.
Inicijalizacija promenljive
Ranije smo razmatrali potrebu da se deklarie svaka
promenljiva koja se koristi u Java programu. Opta naredba
koja se koristi za deklarisanje promenljive je oblika:
type variableName;

Ovde mi kaemo da se promenljiva variableName deklarie da


je tipa type. Tipovi promenljivih sa kojima emo se susretati su
int (celi brojevi), double (decimalni brojevi), boolean
(vrednosti tano i netano) i String promenljive. Evo nekoliko
primera deklaracije promenljivih:
int numberLightBulbsPerPack;
int numberPacks;
double costOfPack;
boolean anyBurnedOut;
String myQuestion;

Kada deklariete promenljivu, njoj se dodeljuje neka


lokacija u memoriji raunara u kojoj se nalazi neka
nepredvidiva vrednost. esto, to je sasvim dovoljno, ukoliko ne
zaboravite da promenljivoj dodelite neku korisnu vrednost
negde u svom programskom kodu. Postoje sluajevi kada treba
da dodelite inicijalnu vrednost promenljivoj kada je deklariete.
To je prilino dobra programerska praksa da radite takvu
inicijalizaciju, ako znate vrednost koju promenljiva treba da ima
(esto to neete znati). Postoje i situacije kada e Java
insistirati da inicijalizujete promenljive. U tim situacijama radi
se o jednostavnom proirenju deklaracije:
type variableName = variableValue;
Naredaba deklaracije u ovom sluaju je i naredba inicijalizacije,
kreira se promenljiva pod nazivom variableName tipa type i

dodeljuje joj se poetna (inicijalna) vrednost od


variableValue. Vodite rauna da dodelite vrednost
odgovarajueg tipa. Ne moete dodeliti decimalnu vrednost
promenljivoj celobrojnog tipa! Ove naredbe se smetaju
zajedno sa uobiajenim deklaracijama na vrhu metoda da bi se
obezbedila lokalna definisanost.
Evo nekoliko primera deklarisanja i inicijalizacije
promenljivih u Java programu:
int numberLightBulbsPerPack = 8;
int numberPacks = 7;
double costOfPack = 2.45;
boolean anyBurnedOut = false;
String myQuestion = How many Java programmers does
it take to change a light bulb?;
I sami vidite kako je lako koristiti takve naredbe. Kao
programer, bie potrebno da odluite kada elite da
inicijalizujete promenljive a kada ne.
Matematike funkcije
U jednom od prethodnih nastavaka, susreli smo se sa
aritmetikim operatorima koji nam omoguuju da obavimo
osnovno sabiranje, oduzimanje, mnoenje i deljenje. Kao i
drugi raunarski jezici, Java ima mogunosti da obavlja veoma
mona matematika izraunavanja. Ugraene Java

matematike funkcije (nazivaju se i metodi) vrlo esto se


koriste u takvim izraunavanjima.
Ne oekujem da ste matematiki genije i zato emo se
pozabaviti samo sa tri matematike funkcije. Prvo, ta je to
uopte funkcija? Funkcija je rutina koja izraunava neku
vrednost za vas na osnovu date informacije. Funkcija se koristi
u sledeem formatu:
functionValue = functionName(argumentList);
functionName je ime funkcije a argumentList je spisak
(lista) vrednosti (argumenata, razdvojenih zarezima) koje su
obezbeene funkciji kako bi mogla da radi. U ovoj naredbi
dodeljivanja, functionName koristi vrednosti iz argumentList da
izrauna rezultat I dodeli ga promenljivoj pod nazivom
functionValue. Moramo se postarati da promenljiva
functionValue bude istog tipa kao vrednost koju izraunava
funkcija functionName.
Kako da znate koje Java matematike funkcije postoje,
koje tipove informacija obezbeuju i koje argumente koriste?
Potraite informacije u Java referentnim prirunicima i na
Sunovom Java websajtu. Kao to sam ve pomenuo,
razmatraemo samo tri matematike funkcije. Metodi koji
podravaju matematike funkcije implementirani su u Java klasi
Math. Prema tome, da biste koristili konkretnu funkciju, piete
Math, zatim taku i posle toga ime funkcije.

Prva funkcija koju emo razmatrati je funkcija apsolutne


vrednosti. U matematici, apsolutna vrednost je pozitivni deo
broja. Java funkcija je:
Math.abs(argument)
gde je argument broj iju apsolutnu vrednost izraunavamo.
Argument moe biti ili int ili double tipa a vraena vrednost e
biti istog tipa kao argument. Evo nekoliko primera:
Primer

Rezultat

Math.abs(7)

Math.abs(-11)

11

Math.abs(-3.14)

3.14

Math.abs(72.1)

72.1

Da li vam je ikada trebao kvadratni koren nekog broja?


Kvadratni koren je broj koji pomnoen samim sobom daje
originalni broj. Na primer, kvadratni koren od 4 je 2, poto je 2
puta 2 etiri. Na vaem kalkulatoru postoji dugme () koje e
to da uradi za vas. U Javi,kvadratni koren je:
Math.sqrt(argument)

gde je argument broj iji kvadratni koren izraunavamo.


Argument mora da bude ne-negativan double broj i vraena
vrednost je double. Evo nekoliko primera:
Primer

Rezultat

Math.sqrt(4.0)

2.0

Math.abs(36.0)

6.0

Math.abs(72.1)

8.491

Trea funkcija koju emo ovde koristiti je stepenovanje.


Kod stepenovanja, broj se mnoi samim sobom odreen broj
puta. Ako mnoimo broj samim sobom etiri puta, kaemo da
je broj dignut na 4-ti stepen. Java funkcija za stepenovanje je:
Math.pow(argument1, argument2)
Uoite da pow (skraenica za power) funkcija ima dva
argumenta. argument1 je broj koji mnoimo samim sobom
argument2 puta. Drugim reima, ova funkcija die argument1
na argument2 stepen. I argument i vraena vrednost su brojevi
tipa double. Evo nekoliko primera:
Primer

Rezultat

Math.pow(4.0, 2.0)

16.0

Math.pow(-3.0, 3.0)

-27.0

Math.pow(10.0, 4.0)

10000.0

U ovde datim primerima, argumenti nisu imali decimalne


delove. To je namerno uraeno da bi primeri bili jasniji. Vi niste
ogranieni na takve vrednosti. Moete, na primer da koristite
ovu funkciju da izraunate 7.654 na 3.16!! (Uzgred, odgovor je
620.99)
Za one koje matematika malo vie interesuje, reiu da
postoji jo Java funkcija. Moete pokuati sami da ih koristite.
Postoje trigonometrijske funkcije I inverzne trigonometrijske
funkcije, funkcije koje pretvaraju radijane u stepene I obratno,
funkcije koje nalaze ekstremne vrednosti, funkcije za
zaokruivanje, logaritam itd..

Java za mlade programere (12)


Ulazni metodi programa
U primeru Sub Sandwich Project pravili smo klasu, zatim
postavljali vrednosti promenljivih u kodu i izvrili program da bi
videli rezultat. Rezultat je ispisao Javin izlazni metod println.
Ako elimo da koristimo druge vrednosti, potrebno je da
promenimo kd, ponovo kompajliramo program i ponovo
izvrimo. To je prilino zametno! Bilo bi lepo ako bi omoguili
korisniku da upie vrednosti dok se program izvrava i
prepustimo raunaru da uradi raunanje na osnovu ulaznih
vrednosti. Na taj nain nema promene koda i ponovnog
kompajliranja da bi se dobio novi rezultat. Nama je potrebno
da tako neto imamo u svojim programima.
naalost, Java nema opti metod koji podrava upisivanje
ulaznih vrednosti preko tastature. Da li treba da budemo
nesreni zbog toga? Ne. Napisaemo sopstvenu ulaznu rutinu
pomou Jave. Mada taj kd nije teko napisati, to je prilino
van okvira ovog kursa. Zato e ovde biti dat taj kd. Vi zatim
moete da koristite taj kd u bilo kom programu koji zahteva
upis vrednosti preko tastature. Korienje tog koda je slino
korienju matematikih funkcija iz prethodne lekcije.
Kd ulaza je sadran u klasi pod nazivom Typeit (fajl
Typeit.java). Klasa Typeit sadri tri metoda:

inInt(prompt)

prihvata ceo (int) broj

inDouble(prompt) prihvata decimalni (double) broj


inString(prompt) prihvata string (String) vrednost
Svaki metod ima odzivnik (prompt) u obliku string poruke koja
se pojavljuje kada se metod izvrava. Kada se odzivnik pojavi,
korisnik upisuje zahtevani ulaz i pritiska taster <Enter> kako
bi raunar prihvatio vrednost. Pogledajte primer.
Recimo da imate program gde elite da saznate koliko
korisnik ima godina. Dva reda Java koda obavljaju taj posao:
int userAge;
userAge = Typeit.inInt(Koliko imate godina?);
Uoite da kod korienja inInt metoda, prvo piete ime klase
Typeit, zatim taku in a kraju ime metoda. Kada se ovaj kd
izvri, korisnik e videti na ekranu odziv u sledeem obliku:
Koliko imate godina?
Korisnik upisuje celobrojnu vrednost i pritiska taster <Enter>.
U ovom trenutku ulazna vrednost je dodeljena promenljivoj
userAge. Metod inInt obezbeuje da korisnik moe da upie
samo celobrojnu vrednost. Korienje druga dva metoda
inDouble i inString je slino.

Postavlja se pitanje kako da na program zna da su ovi


ulazni metodi za tastaturu na raspolaganju? Va program treba
da pristupi klasi Typeit. Najlaki nain da se ovo postigne je da
fajl Typeit.java bude deo vaeg projekta. Da vas podsetim
projekat je sastavljen od fajlova (klasa). Do sada, nai projekti
su imali samo po jedan fajl (klasu). Sa te take gledita, veina
naih projekata e imati dva fajla na programski fajl (fajl sa
metodom main gde piemo Java kd) i fajl Typeit.java koji
sadri nae ulazne metode.
Kako da ubacimo ovaj drugi fajl? Pogledajmo jedan primer
kako bi pokazali kako se dodaje Typeit.java u project i kako se
koristi svaki od ulaznih metoda.
Primer ulaznih metoda
Pokrenite JCreator, otvorite MyJavaWorkspace i sledite
uobiajene korake za kreiranje novog projekta pod nazivom
InputProject. Aktivirajte InputProject. Ako je potrebno
podsetite se kako se kreira projekt. Dodajte fajl InputTest u
projekt. To je fajl u kome emo pisati na kd za testiranje
ulaznih rutina. Sada moemo da dodamo drugi fajl (klasu),
Typeit.java.
Kao prvi korak, napustite na trenutak JCreator i kopirajte
Typeit.java u svoj radni proctor, tj. folder

(MyJavaWorkspace). Time dobijate sopstvenu kopiju klase.


Vratite se u JCreator. Sledite navedene korake:
U pregledu radnog prostora uradite desni klik na
InputProject
Izaberite Add Files
Prebacite se u folder MyJavaWorkspace i izaberite
Typeit.java. Pojavljuje se prozor Open:

Kliknite na Open i fajl se dodaje vaem projektu.

Sada bi va projekt (InputProject) trebalo da sadri dva


fajla (InputTest.java and Typeit.java). Podsetimo se bitnog
koraka. Dodavaete Typeit.java skoro svim projektima koje
budemo pravili ubudue na ovom kursu. A sada otvorite fajl
Typeit.java (dvoklik na fajl u pregledu radnog prostota) i
pogledajte ta se u njemu nalazi. Trebalo bi da vidite mnoto
Java koda:
/*
* Program: Typeit
* Class that provides keyboard input
* Java for Kids
* KIDware (206) 721-2556
*/
import java.io.*;
public class Typeit
{
public static void printPrompt(String prompt)
{
// print the prompt
System.out.print(prompt + " ");
System.out.flush();
}
public static void inputFlush()
{
int dummy;
int bAvail;
// flush the data stream
try
{
while((System.in.available()) != 0)
{

dummy = System.in.read();
}
}
catch(java.io.IOException e)
{
System.out.println("Input error");
}
}
public static String inString(String prompt)
{
// returns input string
inputFlush();
printPrompt(prompt);
return inString();
}
public static String inString()
{
int aChar;
String s = "";
boolean finished = false;
while(!finished)
{
try
{
aChar = System.in.read();
if (aChar < 0 || (char)aChar == '\n')
{
finished = true;
}
else if ((char)aChar != '\r')
{
s = s + (char) aChar;
}
}
catch(java.io.IOException e)
{
System.out.println("Input error");

finished = true;
}
}
return s;
}
public static int inInt(String prompt)
{
// returns input int
while(true)
{
inputFlush();
printPrompt(prompt);
try
{
return
Integer.valueOf(inString().trim()).intValue();
}
catch(NumberFormatException e)
{
System.out.println("Invalid input. Not an integer");
}
}
}
public static double inDouble(String prompt)
{
// return input double
while(true)
{
inputFlush();
printPrompt(prompt);
try
{
return
Double.valueOf(inString().trim()).doubleValue();
}
catch(NumberFormatException e)
{

System.out.println("Invalid input. Not a floating


point number");
}
}
}
}
Ne oekuje se od vas da u ovom trenutku razumete taj kd. Ali
ipak emo ga proanalizirati. Bez obzira na va nivo znanja, Ipak
ete neke delove prepoznati.
Bitno je jednu stvar uoiti a to je da glavni metod ne
postoji nigde u klasi Typeit. To znai da taj kd ne moe da radi
samostalno. On zahteva neku klasu za podrku da bi bio
korien sa glavnim metodom. Taj kd e biti napisan u naoj
glavnoj klasi, InputTest.java. Uradimo to sada. Otvorimo fajl
InputTest.java. On treba da je prazan. Koristiemo taj program
da testiramo korienje ulaznih metoda. Probaemo sistemom
metod po metod, sledei preporuke koje smo ranije naveli da je
najbolje postepeno stvarati kd.
Upiite uobiajene informacije u zaglavlje, definiciju klase i
definiciju glavnog metoda:
/*
* Input Project
* Java for Kids
*/
public class InputTest
{
public static void main(String[] args)
{

Upiite neki kd da biste dobili korisnikovu starosnu do bi


dodajte dva para zagrada:
int ageUser;
ageUser = Typeit.inInt("What is your age?");
System.out.println("You typed " + ageUser);
Zavreni kd u JCreatoru bi trebalo da ima sledei oblik:
/*
* Input Project
* Java for Kids
*/
public class InputTest
{
public static void main(String[] args)
{
int ageUser;
ageUser = Typeit.inInt("What is your age?");
}
}

Kompajlirajte projekt (pritisnite <F7>). Ako se program ne


kompajlira, proverite da ste ukljuili klasu Typeit id a ste kd
upisali tano kako je pokazano.
Izvrite projekt (pritisnite <F5>). Treba da vidite sledee:

Uoite kako se prompt (komandni odzivnik) pojavljuje. Upiite


vrednost i pritisnite <Enter>. Treba da vidite:

Rutina inInt radi!!


Testirajmo sada metod inDouble. Dodajmo deklaraciju
nove promenljive:
double myDouble;

Poto kd pita za korisnikovu starosnu dob, dodajte sledea dva


reda:
myDouble = Typeit.inDouble("Type in a decimal
number");
System.out.println("You entered " + myDouble);
Ponovo kompajlirajte i izvrite kd. Upiite neke godine i
videete:

Upiite vrednost i pritisnite <Enter>. Videete va unos


preslikan kao u ogledalu:

Na kraju, testirajmo inString. Dodajmo sledeu


deklaraciju promenljive:
String myString;

A zatim dodajte seldea dva reda koda:


myString = Typeit.inString("Type in some string");
System.out.println("You entered " + myString);
Ponovo kompajlirajte i izvrite program. Upiite svoje godine,
upiite decimalni broj i videete prompt koji vas pita za string:

Upiite string i pritisnite <Enter>. Evo primera ekrana:

Izgleda da svi ulazni metodi fino rade. Da li ste uoili kako


je gradnja projekta u etapama (postepeno dodavanje po malo
koda) dobra? Uvek sledite takvu proceduru. Kao to sam
naveo, koristiemo klasu Typeit i njene ulazne metode u skoro

svim narednim aplikacijama. Ako vam neto kasnije ne bude


jasno uvek se moete vratiti na ovaj primer. Projekt je sauvan
pod imenom InputProject.
Pre nego to napustite ovaj primer i preete na gradnju
nekog drugog primera, pogledajte druge korisne Java koncepte.
U prethodno datom izlaznom prozoru bilo bi lepo ako bi
postojao prazan red izmeu svih ulaznih zahteva za upisivanje.
To e uticati da izlaz bude itljiviji. Jedna od mogunosti da
ubacite prazan red u izlaz je da koristite metod println bez
argumenata:
System.out.println();
Ovo moe biti zametno ako vam je potrebno vie praznih
redova.
Laki nain je da se koristi Java escape sekvenca za novi
red (\n). Jednostavno umetnete sekvencu od ova dva znaka u
bilo koji string koji prosleujete na izlaz sa println. Kada se to
pojavi novi red se zapoinje. Na primer,
System.out.println(This is a line\n);
e tampati na ekranu prazan red posle iskaza This is a line.
Dok e,
System.out.println(\nThis is a line);

tampati prazan red pre ispisivanja iskaza This is a line na


ekranu. Uveriete se i sami da je escape sekkvenca za novi
red veoma korisna.

Java za mlade programere (13)


Projekt Savings Calculator
U ovom projektu, praviemo kalkulator za tedie.
Scenario rada kalkulatora je sledei: svake sedmice stavljamo
novac na raun, banka daje odreenu kamatu i mi moemo
pomou ovog kalkulatora da izraunamo koliko emo novca
imati na raunu posle odreenog broja sedmica. Ovaj projekt je
snimljen pod nazivom SavingsProject u folderu
(\JavaKids\JK Code).
Dizajn projekta
Po koracima, kalkulator treba da uradi sledee:
1. Dobije iznos sedminog depozita.
2. Dobije broj sedmica.
3. Pomnoi ta dva broja.
4. Kao izlaz prikae dobijeni proizvod.
Koristiemo ulazni metod Typeit za prihvat korisnikovog unosa.
Metod println e se koristiti za ispis iznosa izlaza. Dodaemo
jo jedan korak, tj. pitaemo korisnika za njegovo ime (primer
korienja metoda inString).
Razvoj projekta

Pokrenite JCreator, otvorite radni prostor i kreirajte novi


projekt pod nazivom SavingsProject. Dodajte prazan fajl pod
nazivom Savings (.java ekstenzija e biti po automatizmu
dodata) a zatim fajl Typeit.java (trebalo bi da se nalazi u
vaem radnom folderu).. Podsetite se primera iz prolog broja i
dodavanja klase Typeit.java svom projektu.
Otvorite prazan fajl Savings.java. Prvo, upiite sledee
informacije u zaglavlje, definiciju klase i definiciju glavnog
metoda (sa svim potrebnim levim zagradama:
/*
* Savings Project
* Java for Kids
*/
public class Savings
{
public static void main(String[] args)
{
Koristiemo etiri promenljive u ovom programu: jednu za
korisnikovo ime, jednu za iznos depozita, jednu za broj sedmica
i jednu za iznos ukupne sume (totala). Upiite sada njihove
deklaracije:
// deklarisanje i inicijalizacija promenljivih
String yourName;
double deposit = 0.0;
int weeks = 0;
double total = 0.0;

Sada pristupamo kodiranju prema koracima navedenim u


dizajnu projekta. Svaki put kada upiemo neki kd, moemo da
se zaustavimo, kompajliramo i izvrimo program da bi videli da
li je sve u redu. To je dobra praksa i trebalo bi da vam pree u
naviku. Prvo, pitamo korisnika za ime koristei sledei kd:
// pitamo korisnika za ime
yourName = Typeit.inString("Hello, what is your
name?");
Uoite da je yourName tipa string. Zatim, utvrdite koliki e biti
sedmini depozit:
// dobijanje iznosa depozita
deposit = Typeit.inDouble("\nHow much will you deposit
each week?");
Iznos za depozit je tipa double. Uoite korienje tzv. escape
sekvence za prelazak u novi red pre pojavljivanja ispisa
komandnog prompta (\n). Na kraju, dobijamo broj sedmica,
vrednost tipa int:
// dobijanje broja sedmica
weeks = Typeit.inInt("For how many weeks?");
Korienjem ovh informacija moe se izraunati ukupni depozit
i prikazati korienjem metoda println (nemojte zaboraviti
desne zagrade):
// izraunavanje i prikazivanje ukupne sume

total = deposit * weeks;


System.out.println("\n" + yourName + ", after " +
weeks + " weeks, you will have $" + total + " in your
savings.\n");
Snimite projekt klikom mia na dugme Save All.
Konaan kd u prozoru Jcreatora trebalo bi da ima sledei
oblik:
/*
* Savings Project
* Java for Kids
*/
public class Savings
{
public static void main(String[] args)
{
// declare and initialize variables
String yourName;
double deposit = 0.0;
int weeks = 0;
double total = 0.0;
// ask user name
yourName = Typeit.inString("Hello, what is your
name?");
// get deposit amount
deposit = Typeit.inDouble("\nHow much will you
deposit each week?");
// get number of weeks
weeks = Typeit.inInt("For how many weeks?");
// compute and display total
total = deposit * weeks;

System.out.println("\n" + yourName + ", after " +


weeks + " weeks, you will have $" + total + " in your
savings.\n");
}
}
Izvravanje projekta
Kompajlirajte i izvrite projekt. Ako se projekt ne
izkompajlira uspeno, pokuajte da pronaete gde su greke
pomou poruka o grekama koje e se pojaviti ukoliko ima
greaka. Jedna mogua greka da program ne moe resolve
the symbol Typeit. Ta greka e se pojaviti ukoliko ste
zaboravili da dodate fajl Typeit.java svom projektu. Zato jo
jednom proverite da li ste dodali taj fajl svom projektu.
Kada program radi kako treba vi treba na svom ekranu da
dobijete prikaz dat na sledeoj slici:

Upiite svoje ime, iznos depozita i broj sedmica. Vaa ukupna


suma bie prikazana u obliku lepo formatiranog string. Uoite
kako su ime, depozit, sedmice i ukupna suma stavljeni zajedno

(nadovezani) u jednu reenicu, zajedno sa znakom za dolar ($).


Proverite da li je odgovor taan. Da vas podsetim, veliki korak
u programiranju je proveravanje da li sve radi kako treba! Ako
ste naveli da tedite 10 dolara nedeljno u narednih 10 nedelja i
va program kae da ete tada imati milion dolara, znate da
negde neto nije u redu!
Kada sam probao program dobio sam:

Uoite da je depozit 40.52 (znak za dolar se ne unosi) u toku


10 sedmica, a program saoptava da u imati
$405.20000000000005 na raunu!! Ovde se pojavljuje mnogo
nula zato to raunar nije sposoban da precizno izvri
aritmetiku dobili smo ono to se naziva greka zaokruivanja
(round-off error). Rezultat moe biti korektnije prikazan
korienjem samo dve decimale ($405.20). To je lako uraditi u
Javi, ali je u ovom trenutku van naeg interesovanja.
ini se da ovaj projekt nije komplikovan. I nije. Mi smo
samo mnoili dva broja. Meutim, projekt demonstrira korake
koji se koriste u svakom Java projektu. Vredno iskustvo se stie

saznavanjem kako se itaju ulazne vrednosti, proverava da su


vrednosti odgovarajueg tipa, rade matematiku tako da se
dobijaju tani rezultati i prikazuju ih korisniku.
Pokuajmo jo neke stvari
Uobiajeno je da se na tednju zaraunava i neka kamata,
tj. Banka vam plaa zato to ste joj omoguili da radi sa vaim
novcem. Na projekt je ignorisao kamatu. Meutim, izuzetno je
lako prepraviti ovaj program i omoguiti izraunavanje kamate.
Ovde e vam biti reeno kako da prepravite projekt, ali nee
biti to i pokazano. Pokuajte samo da to uradite:
Definiite promenljivu interest da biste memorisali
godinju stopu kamate. Kamatne stope su decimalni
brojevi, tako da ova promenljiva treba da bude tipa
double.
Dodajte jo jednu naredbu za ulaz da biste omoguili
korisniku da upie kamatnu stopu.
Prepravite kd tako da koristi kamatnu stopu prilikom
izraunavanja ukupne sume (total). Kd za to
izraunavanje je:
total = 5200 * (deposit * (Math.pow((1 + interest /
5200), weeks) - 1) / interest);
Upiite sve u jedan red kao to moda ve znate,
programi za obradu teksta izmene oblik koda zbog

preloma reda, pa je to i ovde sluaj. Ovo je ujedno veba


za korienje zagrada i matematike funkcije (pow). Broj
5200 se koristi za konvertovanje kamatne stope sa
godinje na sedminu stopu.
Sada kompajlirajte i izvrite prepravljenu verziju programa.
Upiite vrednosti za depozit, sedmice i kamatnu stopu.
Proverite runo da li vam raunar daje taan rezultat. (Ako ste
za depozit upisali vrednost 10, za 20 sedmica, a kamatna
stopa je 6.5, ukupna suma trebalo bi da bude $202.39 (sa
zaokruivanjem, inae se dobija $202.3929075). Snimite svoj
projekt.
Pripremio Dragan Markovi

You might also like