PVA1
Bc. Matěj Cajthaml — SSPŠ
©
OOP není jediný správný způsob programování.
K pochopení ostatních typů programování je potřeba tyto základy znát.
classinstance / objectmethodMůžeme si představit jako šablony či formuláře
Co na těchto formulářích vidíte?
Co vám každý tento formulář zaručuje?
a to přesně třídy dělají!
Při definici třídy se stane jméno třídy klíčové a bude datovým typem.
Vlastnosti pojmenováváme jednotným stylem a nejlépe v angličtině.
.
publicProzatím před všechny vlastnosti dáváme modifikátor public. Proč to děláme, si
vysvětlíme později.
Ve třídě můžeme ve vlastnosti použít i jinou třídu.
Instance jsou vlastní balíčky dat — data si nepředávají a nesdílejí je.
void
this
Jaký modifikátor viditelnosti mají prvky třídy, když jej neurčíme?
K čemu se nám modifikátor viditelnosti hodí?
K čemu se nám konstruktory hodí?
Můžeme mít více konstruktorů?
K čemu by nám byly?
Můžeme vytvořit privátní konstruktor?
K čemu by nám byl?
Třídy lze vytvářet ve vlastních souborech.
VS nám dovoluje automaticky generovat konstruktor.
K čemu by se mohla dědičnost hodit?
a co kdybychom chtěli něco přidat do prvního řešení?
is můžeme zkontrolovat, zda je instance z nějaké
třídy
Aktuální dědičnost dovoluje dědit pouze vlastnosti, které jsou public.
private se nenabízí, proč tomu tak je?
protectedprivate
K čemu nám slouží konstuktory?
base
Lze dědit jen z jedné třídy.
Všechny třídy nakonec dědí ze třídy Object.
base volá nadřazený konstruktor, který může volat jeho nadřazený konstruktor a tak
dále.
Bude to fungovat?
Co to vypíše do konzole?
newbasenew
Co to vypíše do konzole?
virtualvirtual označujeme metodu, která se může prepsat
override a virtual
Co to vypíše do konzole?
Jaký je rozdíl mezi tímto přístupem a virtuálním přepsáním?
abstractabstractoverrideMůže mít abstraktní třída neabstraktní metodu?
mnoho tvarů
Neviděli jsme již někde polymorfismus?
Polymorfismus tedy zapříčíní že podobné objekty mají společného předka, který definuje metodu, kterou dědicové přepisují pro vlastní (podobné) chování.
Vymyslete vlastní polymorfismus pro nějaký příklad. Napište program (třídy, případně použití), kde polymorfismus použijete.
Co znamená slovo statické?
nevázané
staticStatické vlastnosti a metody nejsou vázané na instanci (objekt) ale na třídu. K přístupu používáme jméno třídy.
TENTO KÓD JE ŠPATNĚ. PROČ?
staticNeviděli jsme ještě před touto hodinou někde něco statického?
K čemu se statické vlastnosti a metody hodí?
Může existovat privátní statická vlastnost?
Vymyslete program, ve kterém použijete statické vlastnosti a (nebo) metody.
TBD
TBD