Datové typy: primitivní, objektové, pole. Výrazy.

Obsah

Úvod k datovým typům v Javě
Primitivní vs. objektové datové typy - opakování
Přiřazení proměnné primitivního typu - opakování
Přiřazení objektové proměnné - opakování
Primitivní datové typy
Primitivní datové typy
Integrální typy - celočíselné
Integrální typy - "char"
Typ charsearch in Czech Wikipedia - kódování
Čísla s pohyblivou řádovou čárkou
Vestavěné konstanty s pohyblivou řádovou čárkou
Typ logických hodnot - boolean
Typ voidsearch in Czech Wikipedia
Všechno, co jste chtěli vědět o primitivních datových typech...
Pole
Pole v Javě
Pole (2)
Pole - co když deklarujeme, ale nevytvoříme?
Pole - co když deklarujeme, vytvoříme, ale nenaplníme?
Kopírování polí
Operátory a výrazy
Aritmetické
Logické
Relační (porovnávací)
Bitové
Operátor podmíněného výrazu ? :search in Czech Wikipedia
Operátory typové konverze (přetypování)
Operátor zřetězení +search in Czech Wikipedia
Priority operátorů a vytváření výrazů
Porovnávání objektů
Relační (porovnávací)
Porovnávání objektů
Porovnávání objektů - příklad
Metoda hashCode
Metoda hashCode - příklad
  • Příklad, deklarujeme třídu Counter search in Czech Wikipediatakto:

    public class Counter { 
       private double value; 
       public Counter(double v) { 
          value = v; 
       } 
       public void add(double v) { 
          value += v; 
       }
       public void show() { 
          System.out.println(value); 
       }
    }    
  • nyní ji použijeme:

    Counter c1 = new Counter(1.23456); 
    Counter c2 = c1; 
    c1.add(2); 
    c1.show(); 
    c2.show();    

    dostaneme:

    3.23456 
    3.23456

Proměnné těchto typů nesou elementární, z hlediska Javy atomické, dále nestrukturované hodnoty.

Deklarace takové proměnné (kdekoli) způsobí:

  1. rezervování příslušného paměťového prostoru (např. pro hodnotu intsearch in Czech Wikipedia čtyři bajty)

  2. zpřístupnění (pojmenování) tohoto prostoru identifikátorem proměnné

  3. Místo, kde je paměťový prostor pro proměnnou rezervován, závisí na tom, zda se jedná o porměnnou lokální (tzn. buď parametr metody nebo proměnná v metodě deklarovaná), pak se vyhradí na zásobníku, nebo zda jde o proměnnou objektu či třídy -- pak má místo v rámci paměťového prostoru objektu.

V Javě existují tyto skupiny primitivních typů:

  1. integrální typy (obdoba ordinálních typů v Pascalu) - zahrnují typy celočíselné (bytesearch in Czech Wikipedia, shortsearch in Czech Wikipedia, intsearch in Czech Wikipedia a longsearch in Czech Wikipedia) a typ charsearch in Czech Wikipedia;

  2. typy čísel s pohyblivou řádovou čárkou (floatsearch in Czech Wikipedia a doublesearch in Czech Wikipedia)

  3. typ logických hodnot (booleansearch in Czech Wikipedia).

Kódována podle ANSI/IEEE 754-1985

Možné zápisy literálů typu floatsearch in Czech Wikipedia (klasický i semilogaritmický tvar) - povšimněte si "f" nebo "F" za číslem - je u float nutné!:

float f = -.777f, g = 0.123f, h = -4e6F, 1.2E-15f;search in Czech Wikipedia

doublesearch in Czech Wikipedia: tentýž zápis, ovšem bez "f" za konstantou a s větší povolenou přesností a rozsahem

Viz také Minimální a maximální hodnoty

Pracují nad logickými (booleovskými) hodnotami (samozřejmě vč. výsledků porovnávání <, >, ==, atd.).

logické součiny (AND):

  • & search in Czech Wikipedia (nepodmíněný - vždy se vyhodnotí oba operandy),

  • && search in Czech Wikipedia (podmíněný - líné vyhodnocování (lazy evaluation) - druhý operand se vyhodnotí, jen nelze-li o výsledku rozhodnout z hodnoty prvního)

logické součty (OR):

  • | search in Czech Wikipedia (nepodmíněný - vždy se vyhodnotí oba operandy),

  • || search in Czech Wikipedia (podmíněný - líné vyhodnocování - druhý operand se vyhodnotí, jen nelze-li o výsledku rozhodnout z hodnoty prvního)

negace (NOT):

Bitové:

  • součin & search in Czech Wikipedia

  • součet | search in Czech Wikipedia

  • exkluzivní součet (XOR) ^ search in Czech Wikipedia (znak "stříška")

  • negace (bitwise-NOT) ~ search in Czech Wikipedia (znak "tilda") - obrátí bity argumentu a výsledek vrátí

Posuny:

  • vlevo <<search in Czech Wikipedia o stanovený počet bitů

  • vpravo >>search in Czech Wikipedia o stanovený počet bitů s respektováním znaménka

  • vpravo >>>search in Czech Wikipedia o stanovený počet bitů bez respektování znaménka

Dále viz např. Bitové operátory