Lekce 8 - Finální úkol řešení: Bankovní účty
Funkční řešení projektu 60-Banka-Zadani můžete stáhnout z 2020-podzim-java-1-cb-banka-reseni.zip.
Původní zadání můžete nalézt v předchozím postu Lekce 8 - Finální úkol: Bankovní účty
Poznámky
Většinou se to všem zadání podařilo implementovat vpořádku.
Nejčastějčí chyby, vítky které bych vám mohl dát.
Formátování
Kód nechte automaticky formátovat pomocí IDE. Zvyšuje to jeho čitelnost, porovnatelnost, a zároveň vám to umožňuje snáze odhalit chyby.
Existuje více více stylů formátování. Typicky se ale liší jen v některých detailech.
Jako příklad může sloužit např. Google Java Style Guide
Typování
Dejte si pozor na zápis čísel.
Java je silně typový jazyk a 0
(celé číslo/int
) není to samé, co 0.0
(desetinné číslo/double
).
Překladač většinou automaticky toto opravuje, ale nelze na to vždy spoléhat.
V Javě existuje několik druhů číselných typů. Liší se velikostí/rozsahem hodnot a zároveň zda podporují desetinná čísla.
Celočíselné typy
Mezi celočíselné typy patří byte
,short
, int
, long
.
Liší se především rozsahem hodnot, které mohou nabývat.
Typ | Defaultní hodnota | Minimální hodnota | Maximální hodnota |
---|---|---|---|
byte |
0 | -128 | 127 |
short |
0 | -32 768 | 32 767 |
int |
0 | -2^31 | 2^31 |
long |
0L | -2^63 | 2^63 |
Při použití si dejte pozor na případné ořezávání hodnot. Př:
long velkeceleCislo = Long.MAX_VALUE;
System.out.println(velkeceleCislo); // 9223372036854775807
int celeCislo = (int) Long.MAX_VALUE;
System.out.println(celeCislo); // -1
Desetiné hodnoty
V Javě se pro použití desetinných hodnot používají především typy float
a double
.
Obdobně jako int
a long
se liší s float
a double
množstvím paměti, která je reálně k jejich uložení vyhrazena.
Typ | Defaultní hodnota |
---|---|
float |
0.0f |
double |
0.0d |
Mezi nejčastější problémy, ale patří chybné použití při dělení. Výsledek dělení pomocí celých čísel je opětovně celé číslo.
System.out.println(1 / 3); // 0
System.out.println(1f / 3f); // 0.33333334
System.out.println(1.0 / 3.0); // 0.3333333333333333
Více informací o zápisu a dostupných typech můžete nalézt na Primitive Data Types