Druhé cvičení Vytváření identifikátorů Datové typy Deklarace proměnných Operátory
Identifikátory složeny z písmen, číslic, podrtžítek a $ třída – začíná velkým písmenem HelloWorld, String, System metoda – začíná malým písmenem println(), getPrivateKey(), toString() proměnná – začíná malým písmenem name, address, countParts konstanta – všechna písmena velká KEY, MAX_VALUE balík – všechna písmena malá java.lang,java.util Java cv2
Datové typy Primitivní datové typy Referenční datové typy číselné (celočíselné a reálné) znakové logické void Referenční datové typy třídy pole Každý primitivní typ má tzv. „wrapper“. Java cv2
Celočíselné datové typy byte 8 bitů, -128 až 127 short 16 bitů, -32 768 až 32 767 int 32 bitů, 2,14 mld long 64 bitů, 9,2 mld mld (1018) + - + - Java cv2
Celočíselné konstanty dekadické 0, 2, -5, 159, 2368712678954L oktalové 0, 02, 0134, -045, 09517538521559L hexadecimální 0x0, 0x9, -0xB, 0x123456AF7895L Java cv2
Reálné datové typy float 32 bitů, 1.4E-45 až 3,4E+38 double zápis konstant: 3.14, -28.0F, 5e2, -5e2, 5e-2, -5e-2, +5e+2 POSITIVE_INFINITY, NEGATIVE_INFINITY, NaN + - + - + - + - Java cv2
Znakové datové typy char zápis konstant: 16 bitů (Unicode) ‘A’, ‘x’, ‘.’, ‘”’ ‘\u0161’(š),‘\uFB7A’ (ﭺ), ‘\u05E7’ (ק) ‘\n’, ‘\r’, ‘\t’, ‘\\’, ‘\’’ Java cv2
Další primitivní typy boolean void logické hodnoty znamená „nic“ true, false void znamená „nic“ nemá hodnotu nelze definovat proměnnou tohoto typu Java cv2
Wrapper třídy obalují primitivní datové typy Integer, Byte, Short, Long Double, Float Character Boolean Př.: Integer.MAX_VALUE Java cv2
Wrapper Java cv2
Deklarace proměnných kdekoliv v programu základní syntaxe <<typ>> <<jméno>>; např.: int a; char c; Boolean vysledek; Java cv2
Deklarace proměnných 2 více proměnných najednou int a,b,c; deklarace s inicializací int a = 10; int x = y; kombinace int a=10, b, c=20; Java cv2
Deklarace konstant konstanta – proměnná s pevně přiřazenou hodnotou syntaxe final <<typ>> <<jméno>> [= <<hodnota>>]; např.: final double MAX = 100.00; MAX = 200.00; //chyba final int LIMIT; LIMIT = 666; Java cv2
Operátory Aritmetické Relační Logické Bitové Přiřazení Přetypování Ternární operátor Operátor „new“ Java cv2
Aritmetické operátory binární op1 + op2 součet op1 - op2 rozdíl op1 * op2 součin op1 / op2 podíl op1 % op2 modulo zbytek po dělení op1 operandem op2 Java cv2
Aritmetické operátory unární +op1 indikace kladné hodnoty -op1 aritmetická negace op1++ inkrementace po vyhodnocení ++op1 inkrementace před vyhodnocením op1-- dekrementace po vyhodnocení --op1 dekrementace před vyhodnocením př.: a=b++; odpovídá a=b; b=b+1; a=++b; odpovídá b=b+1; a=b; Java cv2
Relační operátory op1 > op2 op1 je větší než op2 op1 >= op2 op1 je větší nebo roven op2 op1 < op2 op1 je menší než op2 op1 <= op2 op1 je menší nebo roven op2 op1 == op2 op1 a op2 jsou si rovné op1 != op2 op1 a op2 si nejsou rovné Java cv2
Logické operátory op1 && op2 logický AND op1 || op2 logický OR op1 a zároveň op2 jsou true op1 || op2 logický OR op1 nebo op2 je true !op1 logický NOT op1 je false Java cv2
Bitové operátory op1 >> op2 bitový posuv op1 doprava o op2 bitů op1 << op2 bitový posuv op1 doleva o op2 bitů op1 >>> op2 jako >>, ale neznaménkově op1 & op2 bitový AND op1 | op2 bitový OR op1 ^ op2 bitový XOR ˜op bitový doplněk Java cv2
Operátor přiřazení a = b; hodnota přiřazení je hodnota levého operandu po provedení přiřazení proto je možno a = b = c; zkrácený zápis aritmetických a bitových operací a += b; odpovídá a=a+b; a *=b; odpovídá a=a*b; a >>=b; odpovídá a=a>>b; … Java cv2
Přetypování syntaxe např.: char a; byte b=71; <<proměnná1>> = (<<typ>>) <<výraz>> např.: char a; byte b=71; a = (char) b; //písmeno G int x; double y=2.00; x = (int) (y*y) Java cv2
Přetypování 2 Rozšiřující konverze Př.: int a = 5; long b = a; nedochází ke ztrátě informace, nemusí se psát operátor přetypování byte => short, int, long, float, double, char, short => int, long, float, double, int => long, float, double, long => float, double, float => double Př.: int a = 5; long b = a; Java cv2
Přetypování 3 Zužující konverze může dojít ke ztrátě přesnosti nebo změně hodnoty, je nutné explicitně operátor uvést short => byte, short => byte, char, char => byte, short, int => byte, short, char long => byte, short, char, int float => byte, short, char, int, long, double => byte, short, char, int, long, float Př.: long a = 999999999L; int b = (int) a; Java cv2
Ternární operátor syntaxe sémantika Př.: <<podmínka>>?<<výrazTrue>>:<<výrazFalse>>; sémantika Pokud je podmínka vyhodnocena jako pravdivá, vykoná se výrazTrue, jinak se vykoná výrazFalse Př.: i=b?1:0; //převod logické hodnoty na číslo Java cv2
Operátor „new“ vytváří nový objekt Př.: String s = new String(); Boolean b = new Boolean(true); Java cv2