Obsah

Proměnné

proměnná hvězda

proměnná 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í typy můžeme dále rozdělit na:

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.

Viz též heslo Endianita na Wikipedii.

velký a malý endian 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.