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×
V Javě rozlišujeme 2 základní skupiny typů proměnných: primitivní typy a (referenční) odkazy na objekty.
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;
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;
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é.