You are on page 1of 56

Write once, run anywhere

debug

JAVA SINTAKSA JEZIKA


Dr Miroslav Trajanovi

2004

Mainski fakultet u Niu

Elementi jezika
Komentari Kljune rei Identifikatori Operatori Modifikatori

2004

Mainski fakultet u Niu

Komentari
Tip komentara /* komentar */ // komentar Primena Svi karakteri izmeu /* i */ se ignoriu. Svi karakteri od // pa do kraja reda se ignoriu. Isto to i /* */ komentar, ali ovakav komentar e biti iskorien od alata javadoc da kreira automatsku dokumentaciju.
Mainski fakultet u Niu

/** komentar */

2004

Separatori
Separatori slue da pokau Java kompajleru kako su grupisani iskazi u programu

{ } ; , :

2004

Mainski fakultet u Niu

Separator za kraj iskaza


znak ; - kraj iskaza
Primer: double v = p * h; int proizvod = 2 * 3;

2004

Mainski fakultet u Niu

Identifikatori
Identifikatori predstavljaju imena Imena se dodeljuju:
Klasama Metodama Promenljivim

Jedinstveno reprezentuju entitete unutar programa Pomau programeru da lake napie program
2004 Mainski fakultet u Niu

Identifikatori
Identifikatori su osetljivi na veliinu slova (case sensitive) DeltaX deltax Poetni karakter u imenu mora biti slovo, znak _ ili znak $. Preporueni stil: mojaPromenljiva, povrsinaKruga, srednjaVrednostPritiska

2004

Mainski fakultet u Niu

Primeri identifikatora
Validni DeltaX Delta_X deltax3 Nevalidni Delta X (ima karakter space) Delta_X! (koristi znak uzvika) 3deltax (poinje brojem)

Licna_adresa private (ovo je Java keyword) starost


2004

#starost (ne poinje sa slovom)


Mainski fakultet u Niu

Kljune rei (keywords)


Kljune rei su slubene rei jezika Pomou njih se kreiraju programski iskazi

2004

Mainski fakultet u Niu

Java kljune rei


abstract boolean break byte byvalue case catch char class const continue default do
2004

double 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
Mainski fakultet u Niu

super switch synchronized this threadsafe throw transient true try void while

Operatori
Operatori slue za manipulaciju sa operandima Operacije se izvravaju sa leva u desno, to se naziva leva asocijativnost Neki operatori imaju i desnu asocijativnost Prvo se izvravaju operacije vieg nivoa, pa onda nieg Primer:
int rezultat = 2+3*5; // rezultat je 17 int rez = (2+3)*5; // rezultat je 25
2004 Mainski fakultet u Niu

Operatori
+ ^ <= ++ %= >>>= ~ >= -&= . * && << == |= [ / || >> += ^= ] % ! >>> -= != ( & < = *= <<= ) | > ? /= >>=

2004

Mainski fakultet u Niu

Aritmetiki operatori
Operator Znaenje
Sufiks auto-poveanje, smanjenje Prefiks auto poveanje, smanjenje Unarni plus, minus mnoenje deljenje ostatak Sabiranje, oduzimanje
Mainski fakultet u Niu

Prioritet Asocijativnost

++, -++, -+, * / % +,2004

1 2 2 4 4 4 5

Leva Desna Desna Leva Leva Leva Leva

Pre i post inkrementacija/dekrementacija


class PrePostDemo { public static void main(String[] args){ int i = 3; i++; System.out.println(i); // "4" ++i; System.out.println(i); // "5" System.out.println(++i); // "6" System.out.println(i++); // "6" System.out.println(i); // "7" } }
2004 Mainski fakultet u Niu

Relacioni operatori
Uporeuju dve veliine da bi odredili da li su jednake ili jedna vea od druge == operator koji testira jednakost. Vraa true ili false != operator koji testira nejednakost. Vraa true kad su operandi nejednaki i false kad su jednaki Primer boolean a,b; a = (3 == 3) // a e biti true b = (7 != 3) // b e biti true
2004 Mainski fakultet u Niu

Relacioni operatori
<, >, <=, >= operatori manje, vee, manje ili jednako, vee ili jednako Primer boolean a a = (1 < 8) // a e biti true b = (2 >= 7) // b e biti false

2004

Mainski fakultet u Niu

Relacioni operatori
? relacioni operator Ima tri operanda, od kojih je prvi logiki operand tipa boolean, a ostali mogu biti bilo kog tipa Ukoliko je vrednost logikog operanda true, rezultat operacije je drugi operand, a ako je false, rezultat je trei operand Primer: boolean b; int c; b = true; c = (b ? 1 : 2) // rezultat je c=1
2004 Mainski fakultet u Niu

Prioritet relacionih operatora


Operator Znaenje
Proverava relativnu veliinu Proverava jednakost Proverava nejednakost Uslovni operator

Prioritet Asocijativnost

>, <, >=, <= == != ?:

7 8 8 14

Leva Leva Leva Leva

2004

Mainski fakultet u Niu

Logiki operatori
Rade sa logikim (boolean) operandima i vraaju logiki rezultat & - AND Logiki i | - OR Logiko ili ! - NOT Logiko ne ^ - XOR Logiko iskljuivi ili (vraa true ukoliko operandi nisu isti) Primer: b= (100 > (3*10)) | (100 > (40*40)) // b je true
2004 Mainski fakultet u Niu

Prioritet logikih operatora


Operator Znaenje
NOT Bulovo AND XOR Bulovo OR Logiko AND Logiko OR

Prioritet Asocijativnost

! &
^ |

2 9 10 11 12 13

Desna Leva Leva Leva Leva Leva

&&
||

2004

Mainski fakultet u Niu

Operacije nad bitovima


Celobrojni tipovi podataka u Javi krajnji levi bit koriste za predstavljanje znaka Ako je ovaj bit 1 broj je negativan
byte short int long
2004

znak 7 bita znak 15 bita znak 31 bita znak 63 bita

Mainski fakultet u Niu

Operacije nad bitovima


Operator Znaenje
NOT (komplement bitova) Pomeranje u desno i u levo Pomeranje udesno kao da nema znaka OR nad bitovima AND nad bitovima XOR nad bitovima
Mainski fakultet u Niu

Prioritet Asocijativnost

>>, << >>>


|

2 6 6 9 10 11

Desna Leva Leva Leva Leva Leva

&
^
2004

Operacije nad bitovima


Primeri:
1 1 1 1 0 0 0 0 0 1 0 0 1 1 = 1 1 = 0
2004

0 0 0 0

0 0 0 0

1 1 1 1

1 0 0 1

1 1 1 1 1

0 0 0 0 0 0

0 1 1 0 1 1

1 1 = 1 1 1 = 0

0 0 0 0 0 0

0 0 0 0 0 0

1 1 1 1 1 0

1 0 1 1 0 1

AND &

OR |

NOT 1 1 0 1 1 0 0 0

XOR ^

Mainski fakultet u Niu

Operacije nad bitovima


1 0 0 1 = 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 Pomeranje u desno >>> 2

Pomeranje u desno sa znakom >> 1 = 1 1 0 0 1 0 0 1

Pomeranje u levo sa znakom << 2 = 1 1 0 0 1 1 0 0

2004

Mainski fakultet u Niu

String operatori
+ Operator nadovezivanja, prioritet 5 i levo
asocijativan Primer: natpis = Fi + zika // rezultat je Fizika

2004

Mainski fakultet u Niu

Operatori dodeljivanja
Operator = *= /= %= += -= >>= <<= >>>= |= &= ^=
2004

Znaenje Dodeljivanje Dodeljivanje sa operacijom Dodeljivanje sa operacijom Dodeljivanje sa operacijom Dodeljivanje sa operacijom Dodeljivanje sa operacijom Dodeljivanje sa operacijom Dodeljivanje sa operacijom Dodeljivanje sa operacijom Dodeljivanje sa operacijom Dodeljivanje sa operacijom Dodeljivanje sa operacijom

Prioritet 15 15 15 15 15 15 15 15 15 15 15 15

Asocijativnost Desna Desna Desna Desna Desna Desna Desna Desna Desna Desna Desna Desna

Mainski fakultet u Niu

Operatori dodeljivanja
Primeri: int i; i = 2; i = i+5; // rezultat je i=7 i *= 3; // rezultat je i=21

2004

Mainski fakultet u Niu

Specijalni operatori
new kreira novi objekat neke klase, prioritet je 3 i desno asocijativan Cilindar c1 = new Cilindar ( ); instanceof vraa true ako neki objekat pripada navedenoj klasi b = c1 instanceof Cilindar // b e biti true
2004 Mainski fakultet u Niu

Literali - konstante
Programski elementi koji se koriste na nepromenljiv nain se nazivaju literali Celobrojni literali:
Decimalni: 12 Heksadecimalni poinju sa 0x: 0xC Oktalni poinju sa 0: 014

Realni Literali:
Standardna notacija: 3.142 Nauna notacija: 7.921e4
2004 Mainski fakultet u Niu

Literali
Bulovi literali
True, false

Karakter literali:
ovo je string, Zoran Petrovic Postoje i specijalni karakteri koji imaju upravljaku funkciju

2004

Mainski fakultet u Niu

Specijalni karakteri
Description Backslash Continuation Backspace Carriage return Form feed Horizontal tab Newline Single quote Double quote Unicode character Octal character
2004

Representation

\\ \ \b \r \f \t \n \' \" \udddd \ddd


Mainski fakultet u Niu

Modifikatori
Menjaju
ivotni vek, skladite, ponaanje i dostupnost

klase, metode ili promenljive.

2004

Mainski fakultet u Niu

Modifikator apstract
Kada se primenjije na klasu ukazuje da je klasa apstraktna i da se iz nje ne mogu kreirati instance. Abstraktna klasa je ona u kojoj je jedna ili vie metoda deklarisana, ali nije definisana (to je apstraktna metoda) Deklaracija apstraktne metode se zavrava znakom ; U nekoj podklasi se definiu metode i onda se mogu instancirati objekti
2004 Mainski fakultet u Niu

Primer modifikatora apstract


public apstract class GeometrijskaTela { public abstract omotac ( ); // apstraktna metoda public double tezina ( ) {return v*g; }

2004

Mainski fakultet u Niu

Modifikator static
Uobiajeno instance klasa (objekti) imaju kopiju promenljivih klase (nasleivanje) Modifikatorom static mogue je deklarisati promenljivu tako da pripada samoj klasi , nezavisno od bilo kog objekta te klase Statine promenljive klase se uobiajeno koriste za uvanje globalnih informacija o instancama klase
2004 Mainski fakultet u Niu

Primer modifikatora static


class GeometrijskaTela { public static string bojaSvihTela; public string imeTela; public double tezinaTela } class Kocka extends GeometrijskaTela { . } class Cilindar extends GeometrijskaTela { .. } class Sfera extends GeometrijskaTela { .. }
2004 Mainski fakultet u Niu

Modifikator synchronized
Sinhronizovana metoda klase omoguava da samo jedna nit istovremeno moe da izvrava metodu Primer: nedozvoljeno je da se istovremeno sa rauna u banci koji ima 100 din. skida na vie mesta po100 din.

2004

Mainski fakultet u Niu

Modifikator native
Koristi se prilikom deklarisanja metode koja je pisana u drugom programskom jeziku (npr. C, C++) Primer: public native long getData( );

2004

Mainski fakultet u Niu

Modifikator volatile
Volatile (neuhvatljiva) je ona promenljiva ija se vrednost moe menjati nezavisno od samog Java programa Predstavljaju ulaz iz spoljnog sveta (na primer ulaz sa senzora ili sistemsko vreme na raunaru)

2004

Mainski fakultet u Niu

Modifikator transient
Koristi se prilikom serijalizacije (zapisivanja podataka klase na disk) Podaci klase koji su deklarisani kao transient nee biti zapisani na disk Primer public MyClass implements Serializible { transient protected Graphics g; // ostatak definicije klase }
2004 Mainski fakultet u Niu

Modifikator final
promenljiva klase ili lokalna promenljiva se moe deklarisati kao konstanta koja se ne moe promeniti tokom izvrenja programa Vrednost ove promenljive se moe promeniti samo izmenom u kodu programa Primer final double Pi = 3.14159
2004 Mainski fakultet u Niu

Modifikator strictfp
strictfp = striktno floating point Koristi se u klasama i metodama Kada se klasa deklarie kao strictfp onda su sve metode strictfp Ako je metoda deklarisana kao strictfp onda se izrazi iz te metode moraju striktno pridravati standardu za rad sa fp brojevima IEEE 754
2004 Mainski fakultet u Niu

Modifikatori dostupnosti
Klase i njihove metode i promenljive su dostupne samo klasama iz istog paketa Ovo se moe promeniti modifikatorima:
private protected public

2004

Mainski fakultet u Niu

Klase, potklase i paketi


Geometrijska tela
ImeTela, tezina

Meni

Tezina Kocka Sfera Cilindar Help

PodklasaDisk PaketGeometrija
2004 Mainski fakultet u Niu

PaketInterface

Modifikator private
Ako je klasa deklarisana kao private nijedna druga klasa ne moe pozivati njene metode niti direktno pristupiti njenim promenljivim Instance jedne private klase mogu meusobno pristupati privatnim promenljivim u drugim instancama iste klase
2004 Mainski fakultet u Niu

Modifikator protected
Kada je neka klasa deklarisana kao protected, onda:
Podklase u istom ili nekom drugom paketu mogu da je nasleuju Moe da im se pristupi iz bilo koje klase iz istog paketa, ali ne i iz drugih paketa

2004

Mainski fakultet u Niu

Modifikator public
Klase deklarisane kao public nikome ne ograniavaju pristup Svi mogu pristupiti klasama, metodama i promenljivima

2004

Mainski fakultet u Niu

Dostupnost unutar paketa


Cilindar Sfera
OK OK OK OK OK OK

int a; public int b; protected int c; private int d;

PodklasaDisk

NE

NE

PaketGeometrija
2004 Mainski fakultet u Niu

Dostupnost iz drugih paketa


NE

Cilindar int a; public int b; protected int c; private int d;

NE

Sfera

OK

PodklasaDisk
OK OK

NE

Paket_1
2004

Paket_2
Mainski fakultet u Niu

Paket_3

Write once, run anywhere

debug

JAVA PROMENLJIVE, TIPOVI I VREDNOSTI


Dr Miroslav Trajanovi

2004

Mainski fakultet u Niu

Promenljiva
Promenljiva je memorijska lokacija Vrednost promenljive je sadraj upisan na toj memorijskoj lokaciji Primer: byte starost = 69
Adresa memorijske lokacije Sadraj

starost

69

00110101110100010010001111100101 01000101

2004

Mainski fakultet u Niu

TIPOVI PROMENLJIVIH
Svaka promenljiva i svaki izraz u Javi ima definisan tip koji je poznat prilikom kompajliranja Tipovi:
ograniavaju vrednosti koje promenljiva moe da ima ili koju izraz moe da izrauna, ograniavaju operacije koje su podrane nad tim vrednostima i odreuju znaenje operacija

Tipovi se mogu podeliti u dve kategorije:


Primitivni tipovi (8 tipova) Referentni tipovi
2004 Mainski fakultet u Niu

Primitivni tipovi
Logiki tip: boolean Numeriki tipovi Celobrojni byte, short, int, long, char (jedan Unicode karakter) Realni tipovi float double
2004 Mainski fakultet u Niu

Primitivni tipovi
br. bita boolean 1 byte 8 short 16 int 32 long 64 char 16 float 32 double 64
2004

Tip

Min. vrednost

Maksimalna vrednost 127 32767 2147483647


9223372036854775807

-128 -32768 -2147483648


-9223372036854775808

0 -3.4 x 1038 -1.7 x 10308


Mainski fakultet u Niu

65535 3.4 x 1038 1.7 x 10308

Referentni tipovi
Vrednost referentnih tipova su reference (pokazivai) na objekte Referentni tipovi su:
class interface array specijalni null tip (referencira na objekt koji ne postoji)

Objekti su instance klasa ili polja


2004 Mainski fakultet u Niu

7 vrsta promenljivih

2004

Promenljive klasa Promenljive instanci Elementi polja (vektori, matrice) Parametri metoda Parametri konstruktora Parametri exception-handler-a Lokalne promenljive
Mainski fakultet u Niu

You might also like