01. Promenljive i tipovi podataka

 

Podaci i promenljive u Javi

Promenljiva je imenovani deo memorije koji se koristi za smeštanje podataka. Svaki deo memorije kome je dato ime biće osposobljen za smeštanje samo određenog tipa podataka. Tip podatka koji svaka promenljiva može da koristi je nepromenljiv i kompajler je sposoban da proveri da li je promenljiva korišćena na način i u kontekstu kako odgovara njenom tipu.

Imena promenljivih, kao i imena bilo čega u Javi zovu se identifikatori. Oni mogu biti bilo koje dužine i moraju početi slovom, znakom za podvlačenje ( _ ) ili znakom za dolar ( $ ). Ostatak može sadržati bilo koje znakove osim onih koji se koriste kao operatori. Takođe imena promenljivih ne smeju da budu Javine ključne reči.
Najbolje je zadržati se na slovima i brojevima i imati u vidu da Java razlikuje mala i velika slova.

Java podržavaUnicode, što znači da u imenu promenljive mogu da budu slova iz bilo kog skupa nacionalnih azbuka (grčka, ćirilična...). Ovo važi i za vrednosti znakovnih podataka.

Nazad na početak: 01. Promenljive i tipovi podataka

 

Tipovi podataka u Javi

U Javi postoje dva tipa podatka: prosti tipovi podataka (int, char, byte, long, float, boolean) i složeni tipovi podataka (objekti i nizovi).

Svaki od prostih tipova podataka ima tačno definisanu veličinu bez obizira na platformu na kojoj se izvršava Java kod.

Tipovi podataka definišu izraz ili promenljivu tako da im ponašanje bude u svakom slučaju predvidljivo, definišući pri tome i skup operacija koje se nad njima mogu izvršiti. Svaka promenljiva pre upotrebe mora biti deklarisana (tj. mora joj se dodeliti tip), a poželjno je da bude i inicijalizovana (tj. da joj se dodeli vrednost).

Java operiše sa dve vrste tipova: primitivnim tipovima i objektima.

U nastavku razmatramo primitivne tipove.

Numerički tip

Postoje dve vrste numeričkih tipova: celi i racionalni brojevi. Oni se razlikuju po stepenu preciznosti i opsegu kojima se izražavaju brojevi. Ova preciznost i veličina kod Jave ne zavise od mašine za koju je program pisan, što je bio slučaj kod nekih drugih jezika. To znači da će na primer, tip int bez obzira na kome se računaru program izvršava uvek imati veličinu od 32 bita.

U Javi su svi brojevi označeni (sa znakom).

Celobrojni tipovi

Celobrojni tipovi obuhvataju brojeve sa znakom koji su predstavljeni sa 1,2,4 i 8 bajtova. Svaki od tipova ima prirodne kategorije primene, u zavisnosti od izbora.

byte je 8-bitni tip sa znakom. Opseg mu je od -128 do 127. Promenljive ovog tipa se deklarišu pomoću reči byte navedene ispred promenljive. Primer:

byte b;
byte c = 55;

short je 16-bitni tip sa znakom. Opseg mu je od -32768 do 32767. Deklariše se analogno prethodnom tipu. Primer:

short s;
short t = 5599;

int je 32-bitni tip sa znakom. Opseg mu je od -2147483648 do 2147483647. Najkorišćeniji je tip podataka. Primer:

int i;
int j = 55990000;

long je 64-bitni tip sa znakom. Opseg mu je dovoljno veliki da se njime mogu izraziti ogromni brojevi.

long li;
long lj = 55990000L;

Vrednost koja se dodeljuje promenljivoj naziva se literal. Podrazumevani literal za celobrojne vrednosti je tipa int. Literali tipa byte i short ne postoje. Literal tipa long se deklaše dodavanjem “l” ili “L” iza broja.

Racionalni tipovi podataka (sa pokretnim zarezom)

Neprogramerski rečeno ovo su realni brojevi.

Imamo dva tipa.

float dužine 32 bita i double 64 bita.

Primeri deklaracija promenljivih (podrazumavana vrednost literala je double):

float f;
float f8 = 3.14f;
double d;
double pi = 3.14159365358979323846;

Nazad na početak: 01. Promenljive i tipovi podataka

 

Konverzija tipa

U nekim slučajevima imamo promenljivu određenog tipa i želimo da smestimo tu vrednost u promenljivu drugog tipa. Nekada željena konverzija može biti automatska, kada nema mogućnosti da se izgube podaci, kada promenljivu tipa manjeg opsega prebacujemo u promenljivu tipa većeg opsega (smeštanje byte promenljive u int promenljivu, na primer).

Automatska konverzija je moguća za slučaj da se konverzija vrši s leva u desno:

byte - short - int - long - float - double

Obrnuto ne bi moglo biti moguće u svim slučajevima, pa u takvim situacijama moramo vršiti ograničavanje šireg tipa (mogu se izgubiti podaci, pa moramo da navedemo kako znamo šta radimo). Ovo se vrši navođenjem tipa u koji želimo da konvertujemo promenljivu, između zagrada pre promenljive. Primer:

int a = 100;
byte b = (byte) a;

Proverite:

byte a, b;
int i=100, j=580;
a=(byte)i;
b=(byte)j;
System.out.println("i="+i+", j="+j+"\na="+a+", b="+b);

Nazad na početak: 01. Promenljive i tipovi podataka

 

Znakovni tip

Java koristi Unicode skup znakova za prikaz karaktera (znakova). Tip char je 16 bitni bez znaka i koristi se za smeštanje desetina hiljada karaktera iz punog internacionalni Unicod karakter skupa. Opseg karaktera je od 0 do 65536.

Proverite:
char a='a',b=97;
int i=a+1, j=b+1;
System.out.println("i="+i+", j="+j+"\na="+a+", b="+b);


Iako se znakovi (karakteri) ne koriste kao brojevi mogu se vršiti operacije nad njima kao da su celi brojevi.

Proverite:
int tri=3;
char jedan='1';
char четири=(char) (tri+jedan);
int četiri=tri+jedan;
System.out.println("tri="+tri+", jedan="+jedan+"\nчетири="+четири+", četiri="+četiri);

Znakovni tip služi i za unos kontrolnih sekvenci. Početak kontrolne sekvence je obrnuta kosa crta. Uobičajeni kontrolni znakovi su:

\uXXXX - Unicode znak (na mestu XXXX je broj)
\b - Backspace (brisanje prethodnog znaka)
\f - Form feed
\n - novi red
\r - Carriage reurn
\t - tabulator
\\ - kosa crta
\” - navodnici

Logički tip

Ovaj tip sadrži samo dve moguće vrednosti true (tačno) ili false (netačno) i deklariše se sa boolean. Primer:

boolean kraj = false;

Nazad na početak: 01. Promenljive i tipovi podataka