Datové typy Javy

  • Javovské typy se dělí na dvě skupiny:
  • Primitivní (neobjektový přístup)
    • Celočíselné
    • Reálné
    • Znakové
    • Logické
  • Referenční (objektový přístup)
    • Řetězce

Primitivní datové typy

Celočíselné typy

  • nejpoužívanějším je int
Datový typRozsahRozsah
byte1 bajt-128 až 127
short2 bajty-32,768 až 32,767
int4 bajty-2,147,483,648 až 2,147,483,647
long8 bajtů-9,223,372,036,854,775,808 až 9,223,372,036,854,775,807

Reálné datové typy

  • Jako desetinný separátor se vždy používá tečka!
  • Při použití typu float musíme ve zdrojovém kódu psát sufix F
float f = 3.14F;
Datový typRozsahPřesnost
float4 bajty7 decimálních číslic
double8 bajtů15 decimálních číslic

Znakový typ

  • Je pouze jeden – char
  • Má velikost 16 bitů
  • Využívání kódování UNICODE
  • Na znaky se díváme jako na celá čísla → využíváme stejné operátory jako u celočíselného datového typu
  • Znakové konstanty se zapisují několika způsoby:
    • Jeden znak, který se píše do apostrofů
      • Př. 'A'
    • Escape sekvence (tj. speciální znaky)
      • Př. '\n'
    • Posloupnost znaků \‘uXXXX, kde XXXX představuje kód znaku v kódování UNICODE
      • Př. '\u000A' (=nový řádek), '\u0159' (= ř)

Logický typ

  • Používá se typ boolean o velikosti 1 bit
  • Může nabývat dvou hodnot
    • logická konstanta true (= pravda, logická 1)
    • false (= nepravda, logická 0)
  • Používá se hodně u podmínek
boolean jeSplnenTest = false;
boolean jeVetsiCislo = cislo > 5;

Referenční datové typy

  • Referenční datové typy jsou složitější než primitivní a nemají omezenou délku
  • Identifikátor tohoto typu začíná vždy velkým písmenem!
  • Typickým zástupce je datový typ String
    • Slouží pro ukládání řetězců → musí být ohraničeny uvozovkami
    • Lze používat diakritika
String jmeno = "Jan";
String pozdrav = "Dobrý den";
  • Spojení dvou a více řetězců do jednoho
    • pomocí spojovacího operátoru +
String s1 = "eps";
String s2 = "2";
String s3 = s1 + s2;      //vytvori retezec eps2
  • Řetězce lze spojovat i s hodnotami jiného typu
int x = 42;
String s = "Odpověď je " + x;   //vytvori retezec Odpověď je 42

Přetypování

  • Proměnné Javy lze přiřadit pouze hodnotu stejného typu
  • Chceme-li přiřadit jiný typ, je nutné přetypování (typová konverze)
  • Jméno datového typu zapisujeme do kulatých závorek před proměnnou, kterou chceme přetypovat
char c = 'A';
int i = (int) c;
char d = (char) i;
  • Pozor!
  • Přetypování má nejvyšší prioritu → celý výraz je třeba dát do závorek
(double) i + j     //přetypuje se jen i
(double) (i+j)     //správně
  • Implicitní – proběhne automaticky
    • Je to konverze z typů s nižším rozsahem na typy s vyšším rozsahem
    • byteshortintlongfloatdouble
int i = 5;
double d = i;     //d bude 5.0
  • Explicitní – je nutno zapsat do programu
    • Opačný směr, tj. z vyššího rozsahu na nižší → může dojít ke ztrátě nebo změně původní hodnoty → musí se zapsat operátor přetypování!
  • doublefloatlongintshortbyte
double d = 5.253;
int i = (int) d;      //i bude 5