Proměnná je pojmenované místo
v paměti. Slouží k uchování hodnoty za běhu programu. Každá
proměnná má jméno a typ. Pomocí jména se na proměnnou odkazujeme.
Typ udává, jaké hodnoty můžeme do proměnné ukládat. Jméno je
posloupnost písmen, číslic a znaků $ a _ nezačínající číslicí.
Jméno i typ proměnné stanovíme deklarací.
Deklarace proměnné musí vždy
předcházet jejímu prvnímu použití. Např. deklarace proměnné
x typu int
(celé číslo) vypadá takto:
int x;
V proměnné může být uložena pouze hodnota stejného typu jako je
typ proměnné. Hodnotu uložíme do proměnné operátorem přiřazení
(=):
x = 42;
První přiřazení do proměnné nazýváme
inicializace. Inicializaci proměnné
je možné spojit s její deklarací:
int x = 42;
Na hodnotu, která je v proměnné uložena, se odkazujeme jménem
proměnné. Např. můžeme hodnotu proměnné vytisknout:
System.out.println( x );
Chceme-li deklarovat více proměnných současně, oddělujeme je čárkou:
int x, y;
I v tomto případě lze přidat inicializaci:
int x = 1, y = 2;
Operace, které lze s obsahem proměnné provádět, jsou určeny
jejím typem. Např. obsah proměnných typu
int můžeme sečíst nebo vynásobit.
V dalším textu budeme místo zdlouhavého „operace s obsahem proměnné“
používat méně přesné, avšak kratší, „operace s proměnnou“.
Například pojem „sčítání obsahu dvou proměnných“ nahradíme
pojmem „sčítání dvou proměnných“.
Javovské typy se dělí na dvě skupiny:
primitivní
reference
Primitivní typy můžeme dále rozdělit na:
celočíselné (byte,
short,
int,
long)
reálné (float,
double)
logický (boolean)
znakový (char)
Budeme rozlišovat mezi výrazem a příkazem. Výraz má vždy nějakou
hodnotu. Tuto hodnotu získáme vyhodnocením výrazu.
Např. 42 a x + 1 jsou výrazy. Příkaz je kód, který něco provede.
Např. x = 1; je příkaz, který přiřadí hodnotu 1 do proměnné x.
Máme-li výraz, při jehož vyhodnocení se něco provede, můžeme z něj
obvykle udělat příkaz tak, že za něj napíšeme středník.
V takovém případě říkáme, že vyhodnocení tohoto výrazu má vedlejší
efekt.
Vícebajtové hodnoty jsou v JVM vždy uloženy v pořadí od nejvyššího
bajtu po nejnižší. Tj. pokud je čtyřbajtová hodnota
1234abcd16 uložena na adresách
adr, adr+1,
adr+2 a adr+3,
pak bajt na adrese adr má
hodnotu 1216, bajt na
adrese adr+1 má hodnotu 3416,
bajt na adrese adr+2 má
hodnotu ab16 a bajt na adrese
adr+3 má hodnotu
cd16. Tento způsob ukládání vícebajtových hodnot se
nazývá velký endian
(angl. big-endian) a používají jej
např. procesory
SPARC. Opačný způsob ukládání, tj. od nejnižšího bajtu po nejvyšší,
se nazývá malý endian
(angl. little-endian) a používají
jej např. procesory Intel.
Dále budeme čísla zapisovat ve formátu velký endian.
Úloha 1
Deklarujte proměnné a,
b, c typu
int. Proměnnou
a inicializujte na hodnotu 100 a
proměnnou c na hodnotu 200.
Proměnná b zůstane neinicializována.
Úloha 2
Doplňte křížovku.
Otázky a odpovědi
Studentka:
Mistře, proč píšete na konci každé řádky středník?
Má nějaký význam?
Java guru:
Jsi všímavá studentka. Středník ukončuje deklaraci a příkaz.
Nezapomínej na něj.
Studentka:
Mistře, jaký význam mají mezery? Můžu napsat např.:
int x= 123;
Java guru:
Ano, můžeš. Mezery slouží jako oddělovače tzv. lexikálních
elementů. Někde je mezera povinná (např. mezi
int a x)
a někde je nepovinná (např. mezi x
a =). Vždy však platí, že jednu
mezeru můžeš nahradit libovolnou posloupností tzv. bílých znaků,
tj. mezer, tabulátorů a přechodů na nový řádek.
Správně je tedy i např.:
int
x
=
123 ;
Takový zápis však není příliš přehledný. Snaž se proto používat
mezery tam, kde pomohou přehlednosti a čitelnosti.