Professional Documents
Culture Documents
CJPR 03-DFKJHLK PDF
CJPR 03-DFKJHLK PDF
Sintaksa bilo kog jezika predstavlja skup pravila koje korisnik jezika mora da ispotuje kako
bi ostali korisnici tog jezika mogli da ga razumeju. Drugim reima, sintaksta predstavlja
skup pravila koja se svi korisnici jezika obavezuju da potuju ne bi li mogli da komuniciraju.
Ukoliko Vi prekrite neko od ovih pravila, drugi uesnici u komunikaciji Vas verovatno nee
razumeti. Kao i u svakom drugom jeziku, i programski jezici imaju svoju sintaksu.
Programski jezik Java, kao i veina drugih modernih jezika, najvei deo sintakse preuzima iz
jezika C++. C++ preuzima vei deo sintakse iz C-a. Ljudi koji su kreirali Javu izabrali su
C++ kao uzor, zato to je ovaj jezik predstavljao jedan od najrasprostranjenijih u tom
trenutku, i na taj nain su mnogim programerima olakali uenje ovog jezika. Zbog toga,
ako pomislite da ste, nauivi Javu, nauili dobar deo nekog od ova dva jezika (C, C++) u
pravu ste. Ovi jezici su sintaksno veoma slini. Ipak, Java omoguava neto veu slobodu u
pisanju. Tanije, ne obavezuje nas da se bavimo stvarima koje nisu u kontekstu projekta, a
moraju se ispotovati da bi program funkcionisao, kao to je rukovanje memorijom, i slino.
Svaki program u Javi sastoji se od sledeih elemenata:
-
linije,
blokovi,
identifikatori,
komentari,
prazni prostori.
Linije (izjave)
Linija predstavlja najmanji samostalni deo jednog programa. Svaki Java program sastoji se
iz linija koda. Veliina nekog koda se meri u linijama (100 linija koda, 1 245 linija koda itd.).
esto pravilo programske sintakse jeste da svaka linija koda mora biti zavrena oznakom ;
int x=1;
Ovo pravilo u potpunosti vai i za Javu. Linija napisana bez ove oznake zapravo se i ne
smatra zavrenom izjavom i program e oekivati nastavak logike sve dok se oznaka ne
pojavi. Pri tom, prazan prostor se ne uzima u obzir, pa e sledea izjava biti u potpunosti
validna:
int x = 1
;
ali zato ova nee:
int x = 1
Postoje sluajevi kada se oznaka ; ne pojavljuje na kraju linije, ali to onda najee znai da
kompletna misao nije zavrena i da program oekuje nastavak logike kako bi zaokruio
celinu. Ovaj sluaj najee se sree prilikom upotrebe uslova (kontrole toka).
Na primer:
if(x<10)
System.out.println("Prethodna linija nema oznaku ; a radi");
Prethodni primer esto izgleda kao da nema samo jednu liniju ispod uslova (linije bez
oznake ;) to su sluajevi kada se upotrebljavaju blokovi koda.
Blokovi
Blok predstavlja grupu linija, odnosno izjava oivienih vitiastim zagradama {}.
Ova grupa linija u jednom bloku se smatra jednom jedinicom.
Na primer, ukoliko bismo imali sledei kod:
int a=1;
int b=2;
int c=a+b;
System.out.println(c);
mogli bismo, jednostavno, liniju 3 i 4 prethodnog koda da proglasimo blokom koji
izraunava i emituje vrednost c.
Da bi i prevodilac mogao da neki kod registruje kao poseban blok, potrebno je oiviiti ga
vitiastim zagradama:
{
ovo je jedan blok
}
Blok koda iz prethodnog primera, osim prezentacione, nema nikakvu drugu funkciju, jer e
kod koji se nalazi unutar bloka biti uvek izvren.
Da bi blok imao bilo kakvu sutinu unutar programa, potrebno je da izvravanje njegove
sadrine bude uslovno:
uslov
{
ovo je jedan blok
}
Na kraj bloka ne treba stavljati taku-zarez.
Identifikatori
Jeziki blokovi kao to su klase ili metode moraju da budu imenovani kako bi mogli da budu
korieni u kodu. Zbog ovoga postoje identifikatori u programskom jeziku Java.
Identifikator moe sadrati slovne karaktere, brojeve, konekcione karaktere(kao npr. donja
crta) i karaktere valuta (na primer $). Identifikator ne sme poeti brojem i njegova duina
mora biti kraa od duine linije u kojoj se pojavljuje.
Odreene rei se ne mogu iskoristiti kao identifikatori, poto imaju specijalno znaenje u
jeziku i nazivaju se rezervisane rei. Java poznaje sledee rezervisane rei: abstract, assert,
boolean, break, byte, case, catch, char, class, const, continue, default, do, double, enum,
else, extends, false, final, finally, float, for, goto, if, implements, import, instanceof, int,
interface, long, native, new, null, package, private, protected, public, return, short, static,
strictfp, super, switch, synchronized, this, throw, throws, transient, true, try, void, volatile,
while.
class JavaClass {} //ovo je ispravno
class 5Class {} //ovo je neispravno
void method_name() {} //ovo je ispravno
void method$(){} //ovo je ispravno
Komentari
Ako elimo da neki sadraj bude zapamen u izvornom kodu, i pri tom ne elimo da taj
sadraj ima uticaj na izvrenje programa, pribegavamo komentarisanju koda.
Ne postoji programski jezik u kome opcija komentarisanja koda ne postoji, pa tako izuzetak
nije ni Java.
Postoji mnogo sluajeva koji prezentuju praktinu potrebu za komentarima nad kodom.
Dobro komentarisan kod olakava rad programeru koji nasleuje taj kod; zato
je, prilikom rada u timu, vie nego preporuljivo koristiti se komentarima u kodu.
Kod je u Javi mogue komentarisati upotrebom kosih linija (Slash). Na primer, ukoliko
naem kodu dodamo liniju komentara:
//ovo je komentar koda
var a=1;
Kada bismo ovo startovali, program bi se izvrio bez problema i dodelio promenljivoj a
vrednost.
Pod komentarisanim podrazumeva se kompletan red koji sledi iza oznake za komentar (//).
Ukoliko elimo da komentariemo vie redova (blok), moemo:
Javadoc
Java poseduje ugraen mehanizam za generisanje dokumentacije o klasama i interfejsima.
Ovaj mehanizam se naziva Javadoc i spada u specijalnu vrstu komentara, pa otuda i rei o
Javadocu u ovom poglavlju. Ova vrsta komentara je namenjena kako ljudima, tako i za
itanje od strane maina. Javadoc komentari poinju kosom crtom, nakon ega slede dve
zvezdice (/**), a zavravaju se zvezdicom i kosom crtom (*/). Ovo je gotovo identino kao i
kod standardnih komentara, sa razlikom to se kod Javadoca pojavljuje zvezdica vie
prilikom otvaranja komentara. Po pravilu, svaka klasa koja je namenjena za javnu upotrebu
bi trebala da sadri Javadoc komentare, kao i komentare svake metode koja je planirana da
bude javno dostupna. Kada se Javadoc alat pokrene, on proverava sve klase i interfejse i
kreira set HTML stranica, sa naslovima i podnaslovima koji odgovaraju hijerarhiji kreiranog
programa.
Kada znate da ete raditi sami na nekoj java aplikaciji nije potrebno ubacivati Javadoc
komentare niti generisati dokumentaciju. Ipak, ako budete radili na nekom open-source ili
timskom projektu, od Vas e se moda traiti da unosite ovakvu vrstu komentara i da
kreirate dokumentaciju. Vie o kreiranju dokumetacije bie u okviru sledee lekcije
NetBeans.
Prazan prostor
Kada preemo u novi red Java programa, ne znai da smo automatski zapoeli i novu liniju,
odnosno, izjavu. Takoe, moemo napisati koliko god hoemo izjava u jednom redu, sve
dok ih pravilno razdvajamo oznakama ; (taka-zarez).
Sledei primer daje validan rezultat:
int a=1; int b=2; int c=a+b; System.out.println(c);
Case Sensitivity
Java je Case Sensitive programski jezik, to znai da e drugaije tretirati elemente ispisane
malim i velikim slovom:
int A=10;
nije isto to to i:
int a=10;
Na raun ove osobine imamo mogunost korienja razliitih sistema imenovanja, odnosno,
upisa promenljivih. Generalno, svako ima pravo da upotrebljava kakav hoe nain za
oslovljavanje promenljivih, ali je, svakako, najea kombinacija Camel Case i Hungarian
Notation. Kada kaemo da koristimo Camel Case notaciju, zapravo se podrazumeva da smo
svako poetno slovo rei u promenljivima zapoeli velikim slovom (MojaPromenljiva), dok u
Hungarian notaciji opisujemo promenljivu, a zatim joj dajemo naziv (prmMojaPromenljiva).
Pitanje
Koji od sledeih primera oslikava pravilnu upotrebu komentara u jeziku Java?
/ovo je komentar/
//ovo je komentar
/*ovo je komentar
ovo je komentar/*
Rezime
U Javi je mogue navesti komentare upotrebom duple kose crte // ili simbola
/* i */ gde se izmeu zvezdica navodi komentar.
Vebe
Veba1
Dat je sledei kod koji sabira dva broja:
int operand1=2;
int operand2=3;
int sum=operand1+operand2;
System.out.println(sum);
Veba2
Dat je sledei kod:
int a=2,b=3;
System.out.print("First operand: ");
System.out.println(a);
System.out.print("Second operand: ");
System.out.println(b);
System.out.print("Sum: ");
System.out.println(a+b);
Potrebno je obezbediti da program na izlazu prikazuje samo rezultat (broj 5), ali da sve
linije koda ostanu dostupne za buduu upotrebu.
Reenje:
int a=2,b=3;
/*
System.out.print("First operand: ");
System.out.println(a);
System.out.print("Second operand: ");
System.out.println(b);
System.out.print("Sum: ");
*/
System.out.println(a+b);