Java - Sintaksa programskog jezika Java


Uvod u sintaksu

Programski jezik Java, kao i većina drugih modernih programskih jezika, najveći dio sintakse preuzima iz jezika C++. C++ preuzima veći deo sintakse iz C-a. Ljudi koji su kreirali Javu izabrali su C++ kao uzor, zato što je ovaj jezik bio jedan od najrasprostranjenijih u tom trenutku, i na taj način su mnogim programerima olakšali učenje Jave. Zbog toga, kada naučite Javu, naučili ste i dobar dio jezika (C, C++). Ovi jezici su sintaksno veoma slični. Ipak, Java omogućava nešto veću slobodu u pisanju. Java nas ne obavezuje da se bavimo stvarima koje nisu u kontekstu projekta, a moraju se ispoštovati da bi program funkcionisao, kao što je rukovanje memorijom, i slično. Svaki program u Javi sastoji se od sledećih elemenata:

  • Linije koda,
  • Blokova koda,
  • Identifikatora,
  • Komentara i
  • Praznog prostora


Linije koda (izjave)

Linija koda predstavlja najmanji samostalni dio jednog programa. Svaki Java program sastoji se iz linija koda. Veličina nekog koda se mjeri u linijama (100 linija koda, 1245 linija koda itd.). Svaka linija koda (tačnije, svaka izjava) mora biti završena oznakom tačka-zarezom (;). Pogledajmo primjer jedne linije (izjave) koda u Javi:

int x = 5; // Svaka izjava mora da se završi znakom ;

Linija napisana bez ove oznake zapravo se i ne smatra završenom izjavom i program će očekivati nastavak logike sve dok se oznaka ne pojavi. Prazan prostor se ne uzima u obzir, pa će sljedeća izjava biti u potpunosti validna:

int x = 1 // Validna izjava...
; // ...(Space se ne uzima u obzir)

Ovo neće biti validna izjava u Javi:

int x = 1 // Nevalidna izjava (nedostaje ; na kraju)

Postoje slučajevi kada se oznaka ; ne pojavljuje na kraju linije, ali to onda najčešće znači da kompletan kod nije završena i da program očekuje nastavak logike. Ovaj slučaj najčešće se sreće prilikom upotrebe uslova (kontrole toka). Pogledajmo primjer:

if(x < 10) // Nema ; na kraju ove linije, jer je ovo uslov
System.out.println("Prethodna linija nema oznaku ; a radi");

Prethodni primjer često izgleda kao da nema samo jednu liniju ispod uslova (linije bez oznake ;), što su slučajevi kada se upotrebljavaju blokovi koda, a sada ćemo naučiti i šta su to blokovi koda u Javi.



Blokovi koda

Blok koda predstavlja grupu linija, odnosno izjava koja se nalazi unutar vitičastim zagradama {}. Ova grupa linija u jednom bloku se smatra jednom jedinicom. Na primjer, ukoliko bismo imali sledeći 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 izračunava i emituje vrednost c. Da bi i prevodilac mogao da neki kod registruje kao poseban blok, potrebno je staviti ga unutar vitičastim zagradama {}:

{
    Ovo je jedan blok
}

Odnosno uradićemo sljedeće:

int a = 1;
int b = 2;

// Blok koda
{
    int c = a + b;
    System.out.println(c);
}

Blok koda iz prethodnog primjera, osim prezentacione, nema nikakvu drugu funkciju, jer će kod koji se nalazi unutar bloka biti uvijek izvršen. Da bi blok imao bilo kakvu suštinu unutar programa, potrebno je da njegovo izvršavanje bude uslovno. Kao što je prikazano u sljedećem primjeru:

int a = 1;
int b = 2;

if(b != 0) // Uslov
{
    int c = a / b;
    System.out.println(c);
} // Ovdje ne treba ;


Identifikatori

Blokovi kao što su klase ili metode moraju da budu imenovani kako bi mogli da budu korišteni u kodu. Zbog ovoga postoje identifikatori u programskom jeziku Java. Identifikator može da sadrži slovne karaktere, brojeve, konekcione karaktere (kao npr. donja crta) i karaktere valuta (na primer $). Identifikator ne smije početi brojem i njegova dužina mora biti kraća od dužine linije u kojoj se pojavljuje. Određene riječi se ne mogu iskoristiti kao identifikatori, pošto imaju specijalno značenje u jeziku i nazivaju se rezervisane riječi. Java poznaje sljedeće rezervisane riječi:

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 // Ispravno
{
    void method_name() // Ispravno
    {
    }
    void method$() // Ispravno
    {
    }
}

class 5Class // Neispravno
{
}


Komentari

Ako želimo da neki sadržaj bude zapamćen u izvornom kodu, a pritom ne želimo da taj sadržaj ima uticaj na izvršenje programa, tada koristimo komentarisanju koda. Ne postoji programski jezik u kome opcija komentarisanja koda ne postoji, pa tako izuzetak nije ni Java. Kod u Javi je moguće komentarisati upotrebom kosih linija (Slash). Pogledajmo kako da pišemo komentar u jednoj liniji (jednolinisjki komentari)

// Ovo je jednolinijski komentar koda
int a = 1;

Kada bismo ovo startovali, program bi se izvršio bez problema i dodjelio promjenljivoj a vrednost. Pod komentarom se podrazumeva sve što sljedi nakon oznake za komentar (//). Ukoliko želimo da komentarišemo više redova (blok), možemo uraditi kao u idućem primjeru:

  • Komentarisati svaki red posebno:
  • // Prvi red kometara
    // Drugi red komentara

  • Možemo takođe napraviti tzv. blok komentara ili poznat kao višelinijski komentar:
  • /*
    Sve između
    ovih oznaka
    je blok komentara!
    */

Oznaka /* započinje blok komentara, a oznaka */ napušta blok komentara. Svaki tekst koji se nalazi između ove dvije oznake biće tretiran kao komentar. Komentar je moguće dodati i nakon linije koda. Pogledajmo primjer:

System.out.println("Volim učiti Javu uz IT TUTORIJALE"); // Moj komentar nakon linije koda

Ukoliko bismo htjeli da unesemo komentar u sam kod, ali da pritom u istoj liniji nastavimo kod, upotrebili bismo blok komentar. Pogledajmo primjer:

System.out./* Komentar unutar linije koda funkcioniše */println("Volim učiti Javu uz IT TUTORIJALE");


Prazan prostor

Kada pređemo u novi red Java programa, ne znači da smo automatski započeli i novu liniju, odnosno, izjavu. Takođe, možemo napisati koliko god hoćemo izjava u jednom redu, sve dok ih pravilno razdvajamo oznakama ; (tačka-zarez). Sljedeći primjer daje validan rezultat, jer ne mora svaka izjava biti napisana u novom redu:

int a = 1; int b = 2; int c = a + b; System.out.println(c);

Dok će sljedeći primjer prijaviti grešku, jer izjave nisu razdvojene sa (;):

int a = 1
int b = 2
int c = a + b
System.out.println(c)


Case Sensitivity

Java je Case Sensitive programski jezik, što znači da će drugačije tretirati elemente ispisane malim i velikim slovom:

int A = 10;

nije isto što i:

int a = 10; // A i a nisu iste promjenjljive

Na račun ove osobine imamo mogućnost korišćenja različitih imenovanja, odnosno upisa promjenjljivih. Generalno, svako ima pravo da upotrebljava kakav hoće način za oslovljavanje promjenjljivih, ali je svakako najčešća kombinacija Camel Case i Hungarian Notation. Kada kažemo da koristimo Camel Case notaciju, zapravo podrazumjeva da smo svako početno slovo riječi u promjenjljivima započeli velikim slovom (MojProgram), dok u Hungarian notaciji opisujemo promjenjljivu, a zatim joj dajemo naziv (prmMojProgram).