Programování v jazyku Java (4) - Proměnné a operace s nimi

V této části si probereme základní datové typy proměnných a operace s nimi.

30.7.2004 10:00 | Petr Hatina | přečteno 59657×

Datové typy proměnných

V Javě rozlišujeme 2 základní skupiny typů proměnných: primitivní typy a (referenční) odkazy na objekty.

Přehled primitivních typů

Typ Obsahuje Rozsah
boolean pravdivostní hodnota true/false
char znak Unicode
byte celé číslo -128 až 127
short celé číslo -215 až 215-1
int celé číslo -231 až 2 31 -1
long celé číslo -263 až 263-1
float racionální číslo jednoduchá přesnost
double racionální číslo dvojnásobná přesnost

Deklarace použití proměnné se provádí ve tvaru typ proměnná; Lze ihned přiřadit i prvotní, inicializační hodnotu.

int i=0;

Operátory

Manipulaci s proměnnými provádíme pomocí operátorů. Dělíme je do několika skupin.

Přiřazení hodnoty do proměnné dosáhneme pomocí operátoru =

int a; int b; 
a=6;
b=a+5;

Matematické operátory pro práci s čísly jsou standardní, tedy + - * / a % ( modulo, tj.zbytek po dělení)) např.

a=a*b;

Lze použít i zkrácený formát po přiřazení ve tvaru proměnná+=hodnota; namísto proměnná=proměnná+hodnota;

Častěji než zkrácený formát se používají operátory inkrementace (++) a dekrementace(--). Ve spojení s proměnnými číselných typů mají význam :přičti, resp. odečti 1.

a++;    //odpovídá a=a+1;

Používají se postfixově (a++), ale někdy i prefixově (++a). Rozdíl se projeví pokud v jednom příkazu současně provádíme s proměnnou jinou operaci, prefixový (++a) se provede ještě před touto operací, kdežto postfixový až po ní.

a=1; b=a++; //b je 1,a je 2 
a=1; b=++a; //b je 2,a je 2  

Relační operátory porovnávají hodnoty primitivních proměnných. Patří mezi ně < (menší než), > (větší než), <=, >= (menší, či větší nebo rovno), == (rovná se), != (nerovná se)). Připomínám že v Javě stejně jako v jazyce C se pro porovnání používá == (dvě rovnítka).

if(a == 4) System.out.println("OK");

Logické operátory spojují pravdivostní výsledky více relačních operací porovnání. && (a, současně), || (nebo), ! (negace).

if (a==0 && b>5 ) a=1;//pokud a je 0 a  b>5

Speciální skupinu tvoří bitové operátory, které dokáží porovnávat (&, |, ^, ~) , nebo posouvat (<<, >>) jednotlivé bity v bytech proměnných.

Přetypování , neboli změnu datového typu (např. při přiřazení do proměnné jiného primitivního typu) provádí Java většinou automaticky. Pouze v určitých případech je třeba použít operátor přetypování (výstupní typ v závorce) před proměnnou.

int i=100; long l= (long) i;

Odkazy

Velice krátce se dotknu skupiny referenčních typů, protože se jim budeme plně věnovat až budeme probírat třídy u kterých se hlavně používají. Referenční proměnné (odkazy) obsahují pouze odkaz na objekt proměnné, který se dynamicky vytváří v paměti příkazem new.

Date dat;
dat=new Date();
System.out.println (dat.getDate());

Jen předem upozorním na riziko používání operátorů při práci s odkazy. Pokud totiž použijeme na odkazy standardní operátory, operace provádějí se nad hodnotou odkazu , a nikoliv nad hodnotou objektu na který odkazuje. Například operátor == pak neporovná hodnotu odkazovaných proměnných, ale to, zda dva různé odkazy odkazují na stejný objekt v paměti.

Pro operaci s objekty musíme buď použít jejich metody (např. equals()), nebo provádět operace nad jejich atributy, pokud jsou přístupné.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=312