Vloženo:

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