PVA
Bc. Matěj Cajthaml — SSPŠ
©
Co je to funkce, kterou znáte z matematiky?
return
break
void
void
return
s hodnotouvoid
static
Aktuálně musíme před funkce v konzolových aplikací psát static
, proč
tomu tak je, si vysvětlíme později.
Proč používáme funkce?
Neviděli jsme již někde funkce?
Jak můžeme kód rozdělit na menší celky?
Napište funkci, která do konzole vypíše n
-krát hvězdičku dle parametru.
Napište funkci, která do konzole vypíše n
-krát znak z
dle parametrů.
Napište funkci, která z parametrů získá stringové pole a z něj odstraní duplicity.
klasickékonzolové aplikace
OOP není jediný správný způsob programování.
K pochopení ostatních typů programování je potřeba tyto základy znát.
class
instance
/ object
method
Můž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í!
Jak se tedy liší Třída a Struktura?
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ě.
.
public
Prozatí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.
Vytvořte třídu pro uchovávání informací pro obdelníky a kruhy.
Vaší implementaci vyzkoušejte na nějakých instancí (vytvořte je).
Vytvořte třídy, které budou představovat e-mailovou stránku. Tedy, vytvořte uživatele (schránku), e-mail a například třídu pro přílohy. Třídy propojte.
Vaší implementaci vyzkoušejte na nějakých instancí (vytvořte je).
Vytvořte třídy pro evidenci školy, tedy, třídu pro studenty, učitele a školu. Třídy propojte.
Vaší implementaci vyzkoušejte na nějakých instancí (vytvořte je).
Je tento kód správně?
Je tento kód správně?
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?
Vytvořte třídu Předmět a Sklad pro evidenci předmětů v jednotlivých skladech. V jednotlivých třídách vytvořte konstruktory a vlastnosti, a určete jim správné modifikátory. Třídy propojte. Vytvořte pro dané třídy vhodné metody, které upravují či vypisují dané uložené hodnoty.
Vytvořte třídu Stránka a Sešit pro zapisování poznámek. V jednotlivých třídách vytvořte konstruktory a vlastnosti, a určete jim správné modifikátory. Třídy propojte. Vytvořte pro dané třídy vhodné metody, které upravují či vypisují dané uložené hodnoty.
Třídy lze vytvářet ve vlastních souborech.
VS nám dovoluje automaticky generovat konstruktor.
Co jsou to slovníky?
Dictionary
using System.Collections.Generic;
S vlákny se velmi špatně pracuje. Proč?
Pokročilejší používání vláken (vytvoření, komunikace) je nadrámec tohoto předmětu.
Vymyslete a naprogramujte malý program, ve kterém si Slovníky vyzkoušíte. Vymyslete správný návrh.
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?
protected
private
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?
new
base
new
Co to vypíše do konzole?
virtual
virtual
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?
abstract
abstract
override
Můž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é
static
Statické 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Č?
static
Nevidě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.