105
Java za mlade programere (1) Šta je Java? Java je računarski programski jezik koji je razvila firma Sun Microsystems. Programski jezik se koristi za izdavanje instrukcija računaru 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 više stotina ili hiljada dolara, što je za većinu ljudi glavna prepreka da počnu da uče programiranje. Drugi razlog za popularnost Jave je to što je Java programi mogu da se izvršavaju na skoro svakom tipu računara. Kažemo da su Java programi nezavisni od platforme na kojoj se izvršavaju. Java može da se koristi za razvoj raznovrsnih aplikacija. Postoje jednostavni tekstualno-zasnovani programi koji se nazivaju konzolnim aplikacijama. Takvi programi podržavaju samo tekstualni unos i ispis na monitoru vašeg račuanara. Takođe, možete da pravite aplikacije sa grafičkim korisničkim interfejsom (engl. Graphical User Interface – GUI). Ove aplikacije raspolažu sa menijima, paletama alatki, dugmadima, trakama za pomeranje sadržaja drugim kontrolama koje reaguju na miša. Primeri GUI aplikacija koje ste u svom radu na računaru već koristili su programi za obradu teksta, programi za rad sa tabelama i računarske igrice. Takođe, možete praviti i aplikacije koje se nazivaju apleti (engl. Applets). To su male GUI aplikacije koje mogu da se izvršavaju unutar web stranice. Apleti daju dinamičnost web stranicama. Mislim da ste već uvideli univerzalnost programskog jezika Java. Na ovom kursu krenućemo od prostih konzolnih aplikacija. To će nam omogućiti da se koncentrišemo na učenje osnova Jave bez upuštanja u svet grafičkog korisničkog interfejsa. Drugo popularno svojstvo Jave je to što je ona objektno orijentisana. To je fini način da se kaže da su Java programi sačinjeni od više osnovnih delova (komponenti) koji mogu da se više puta koriste. To za vas kao Java programera znači da možete da pravite i menjate velike

Java Za Pocetnike

  • Upload
    svs988

  • View
    136

  • Download
    13

Embed Size (px)

DESCRIPTION

Java Za Pocetnike

Citation preview

  • 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-windows-i586.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.comPotraite 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 taka-

    zareza! 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

    ). 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 ). 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 objektni kd (.class datoteka)

    Java kompajler

    Java program (.java 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:

    Program na

    vaem raunaru

    Java virtuelna maina (Java Interpreter)

    Java objektni kd (.class datoteka)

  • 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 9

  • Sabiranje 3 + 8 11

    Oduzimanje 6 - 4 2

    Oduzimanje 11 - 7 4

    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 6

    Deljenje 42 / 6 7

    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 3

    14 % 3 4 ostatak 2 2

  • 25 % 5 5 ostatak 0 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 , 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 , 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) 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 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 .

    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 ). Ako se program ne

    kompajlira, proverite da ste ukljuili klasu Typeit id a ste kd

    upisali tano kako je pokazano.

    Izvrite projekt (pritisnite ). Treba da vidite sledee:

    Uoite kako se prompt (komandni odzivnik) pojavljuje. Upiite

    vrednost i pritisnite . 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 . 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 . 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 znak