Java: Datové typy

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Doplnění teorie + příklady)
(Celá čísla: Komentář k ořezání desetinných čísel.)
 
(Není zobrazeno 5 mezilehlých verzí od 1 uživatele.)
Řádka 4: Řádka 4:
  
 
Datový typ entity (objektu nebo proměnné) udává:
 
Datový typ entity (objektu nebo proměnné) udává:
* rozsah hodnot, které můžeme do entity ukládat.
+
* rozsah hodnot, které můžeme do entity ukládat,
* operace, které můžeme s entitou provádět.
+
* a operace, které můžeme s entitou provádět.
  
 
<div class="Priklad">
 
<div class="Priklad">
 
Příklad: datový typ <code>int</code> v Javě  
 
Příklad: datový typ <code>int</code> v Javě  
* Udává, že se jedná o celá čísla v rozsahu < 2^(-32) ; 2^(32)-1 ).
+
* Udává, že se jedná o celá čísla v rozsahu &lt; 2^(-32) ; 2^(32)-1 ).
 
* Můžeme provádět operace sčítání, odčítání, násobení a další.
 
* Můžeme provádět operace sčítání, odčítání, násobení a další.
  
 
Příklad: třída (datový typ) <code>Point</code> v Javě
 
Příklad: třída (datový typ) <code>Point</code> v Javě
* rozsah: uspořádané dvojice čísel rozsahu <code>int</int>
+
* rozsah: uspořádané dvojice čísel rozsahu <code>int</code>
 
* operace: <code>posun(x,y)</code>, <code>rovnost(bod2)</code> a další...
 
* operace: <code>posun(x,y)</code>, <code>rovnost(bod2)</code> a další...
 
</div>
 
</div>
Řádka 21: Řádka 21:
 
* u ordinálních lze určit předchozí a následující hodnotu (znak, číslo, ne desetinné číslo).
 
* u ordinálních lze určit předchozí a následující hodnotu (znak, číslo, ne desetinné číslo).
  
; pravda/nepravda
+
=== Logická hodnota ===
* <code>boolean</code>
+
* Datový typ: <code>boolean</code>
 +
* Proměnná typu <code>boolean</code> může nést pouze dvě hodnoty:
 +
** pravda/ano (anglicky <code>true</code>)
 +
** nepravda/ne (anglicky <code>false</code>)
 +
 
 +
* Vytvoření proměnné:
 
  boolean spravne;
 
  boolean spravne;
 +
* Nastavení hodnoty:
 
  spravne = true;  
 
  spravne = true;  
 
  spravne = false;
 
  spravne = false;
 
  spravne = a > 5;
 
  spravne = a > 5;
 +
* <code>spravne</code> bude <code>true</code> pokud hodnota proměnné <code>a</code> je větší než 5
 +
spravne = ! vysledek;
 +
* Hodnota proměnné <code>spravne</code> bude opačná než hodnota proměnné <code>vysledek</code>.
 +
* Testování hodnoty:
 
  if (spravne) {
 
  if (spravne) {
     System.out.println("Data jsou v pořádku!");
+
     System.out.println("V&nbsp;proměnné spravne je hodnota pravda (true).");
 +
}
 +
if (! spravne) {
 +
    System.out.println("V&nbsp;proměnné spravne je hodnota nepravda (false).");
 
  }
 
  }
  
; Celá čísla
+
=== Celá čísla ===
 
* <code>int</code>
 
* <code>int</code>
 
  int polomer = 5;
 
  int polomer = 5;
  int obvod = 2*Math.PI*polomer;
+
  int obvodObdelnika = 2*(a+b);
  
 
  int a, b, c, obvod3;
 
  int a, b, c, obvod3;
Řádka 40: Řádka 53:
 
* <code>long</code>
 
* <code>long</code>
  
; Písmeno
+
<div class="Varovani">
 +
Pokud do proměnné celočíselného typu uložíme desetinné číslo, automaticky se zahodí desetinná část!
 +
Příklad:
 +
int polomer = 1;
 +
int obvodKruhu = 2*Math.PI*polomer;
 +
System.out.println(obvodKruhu); ''// Vypíše se: ''6'', nikoli ''6.28'', jak bychom čekali!''
 +
</div>
 +
 
 +
=== Písmeno ===
 
* <code>char</code>
 
* <code>char</code>
  
;Desetinná čísla
+
=== Desetinná čísla ===
 
* <code>double</code>
 
* <code>double</code>
 
* <code>float</code>
 
* <code>float</code>
  
;Dále:
+
=== Další ===
*výčtový typ
+
* Výčtový typ
*prázdný typ (<code>void</code>)
+
* „Prázdný typ“ (<code>void</code>)
 
  public void setLimit(int limit) {
 
  public void setLimit(int limit) {
 
     ...
 
     ...
Řádka 55: Řádka 76:
  
 
== Složené (strukturované) ==
 
== Složené (strukturované) ==
; [[Java: Práce s poli|Pole]]
+
=== [[Java: Práce s poli|Pole]] ===
 
* Viz stránka [[Java: Práce s poli]].
 
* Viz stránka [[Java: Práce s poli]].
 
* <code>int[]</code>
 
* <code>int[]</code>
Řádka 63: Řádka 84:
 
  int vysledek += hodnoty[99];
 
  int vysledek += hodnoty[99];
  
; Objektové
+
=== Objektové ===
*Objekty tříd
+
* Objekty tříd.
*Třída zde je datovým typem.
+
* Sdružují dohromady data (jednu nebo několik hodnot jiného datového typu) a operace.
; Textový řetězec (text)
+
* Třída je vlastně popisem nového (námi vytvořeného) datového typu.
*V Javě realizován jako objekt třídy String.
+
* Syntaxe viz: [[Java:_Zápis_tříd]]
 +
 
 +
=== Textový řetězec (text) ===
 +
* V Javě realizován jako objekt třídy <code>String</code>.
 +
* Zároveň lze ale používat konstanty typu textový řetězec.
 +
String jmeno;
 +
String titul = "Mgr.";
 +
jmeno = "Pavel Karas";
 +
jmeno = titul+" "+jmeno;
 +
System.out.println("Vaším vedoucím je "+jmeno;
  
 
== Další zdroje ==
 
== Další zdroje ==
 
# [http://interval.cz/clanky/naucte-se-javu-datove-typy/ Interfal.cz-> Naučte se Javu-> Datové typy]
 
# [http://interval.cz/clanky/naucte-se-javu-datove-typy/ Interfal.cz-> Naučte se Javu-> Datové typy]

Aktuální verze z 26. 11. 2015, 14:07


Obsah

Co je to datový typ

Datový typ entity (objektu nebo proměnné) udává:

Příklad: datový typ int v Javě

  • Udává, že se jedná o celá čísla v rozsahu < 2^(-32) ; 2^(32)-1 ).
  • Můžeme provádět operace sčítání, odčítání, násobení a další.

Příklad: třída (datový typ) Point v Javě

  • rozsah: uspořádané dvojice čísel rozsahu int
  • operace: posun(x,y), rovnost(bod2) a další...

Jednoduché (primitivní, skalární)

Ordinální a neordinální

Logická hodnota

boolean spravne;
spravne = true; 
spravne = false;
spravne = a > 5;
spravne = ! vysledek;
if (spravne) {
    System.out.println("V proměnné spravne je hodnota pravda (true).");
}
if (! spravne) {
    System.out.println("V proměnné spravne je hodnota nepravda (false).");
}

Celá čísla

int polomer = 5;
int obvodObdelnika = 2*(a+b);
int a, b, c, obvod3;
obvod3 = a+b+c;

Pokud do proměnné celočíselného typu uložíme desetinné číslo, automaticky se zahodí desetinná část! Příklad:

int polomer = 1;
int obvodKruhu = 2*Math.PI*polomer;
System.out.println(obvodKruhu); // Vypíše se: 6, nikoli 6.28, jak bychom čekali!

Písmeno

Desetinná čísla

Další

public void setLimit(int limit) {
    ...
}

Složené (strukturované)

Pole

int[] hodnoty = new int[100];
hodnoty[0] = 10;
hodnoty[99] = 1;
int vysledek += hodnoty[99];

Objektové

Textový řetězec (text)

String jmeno;
String titul = "Mgr.";
jmeno = "Pavel Karas";
jmeno = titul+" "+jmeno;
System.out.println("Vaším vedoucím je "+jmeno;

Další zdroje

  1. Interfal.cz-> Naučte se Javu-> Datové typy
Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje