Lekce 5 – Tvorba tříd
Osnova
- tvorba vlastních tříd (
class
) - konstruktor
- vytváření instancí třídy (operátor
new
) - vlastnosti (property), getter a setter
- metoda
toString()
- viditelnost tříd, metod a fieldů
public
– viditelné odkudkoliprivate
– viditelné pouze z vlastní třídy- později:
protected
– viditelné z package a z odděděných tříd - později: „package protected“ – viditelné z package
- dokumentace tříd v základní knihovně Javy: Java SE 17 JavaDoc
- java.lang.String
- java.io.PrintStream (Objekty
System.out
aSystem.err
jsou typujava.io.PrintStream
.)
Tip
- generování kódu (třeba gettery a settery) v IntelliJ Idea:
- Windows, Linux: Alt+Insert
- Apple: Command+N nebo Control+Enter
- menu Code → Generate…
- konfigurace IntelliJ Idea, aby na Windows správně vypisovala české znaky v konzoli: menu
Help
→ `Edit Custom VM Options…, na konec přidat následující řádek:-Dfile.encoding=UTF-8
Cvičení 1
- Forkni a naklonuj si repository j1-lekce05
- Při přidávání nových vlastností nemusíš provádět kontrolu vstupu.
- Do třídy
Osoba
přidej jako vlastnost (property) dvě e-mailové adresy – pracovní e-mail a soukromý e-mail. Oba budou typuString
. - Vyzkoušej k testovací osobě přidat jeden nebo oba dva e-maily.
- Vytvoř novou třídu
Adresa
, která bude osahovat vlastnosti (všechny typuString
):ulice
– bude obsahovat název ulice a čísla domů, např.Národní 1/23
castObce
– bude obsahovat (volitelně) část obce, např.Černý Most
obec
– bude obsahovat název obce, např.Praha
psc
– bude obsahovat PSČ, např.11000
- Do třídy
Osoba
přidej vlastnost (property)adresa
typuAdresa
. - Vyzkoušej k testovací osobě přidat adresu.
Bonus
- Přidej kontroly vstupů, například:
- e-mailová adrese nesmí být prázdná
- e-mailová adresa musí obsahovat
@
a.
- ulice, obec a PSČ nesmí být prázdné
- PSČ musí obsahovat právě 5 znaků
- Do třídy
Adresa
přidej metodutoString()
, která vrátí adresu jako řetězec ve formátuulice, PSČ obec
neboulice, část obce, PSČ obec
. - Přidej do třídy
Osoba
metodupublic String getKontakty()
, která vrátí všechny kontakty osoby (e-maily a telefonní číslo) v jednom řetězci.
Úkol
Z této lekce je 3. domácí úkol.