Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 4. diel - Hracia kocka v C# - Zapuzdrenie a konštruktor

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Odpovedá na krepsy3
Miroslav Mazal:15.8.2018 22:52

Myslím, že ano. Zapouzdření se netýká nějakého programátora, který si otevře script programu, ale uživatelského rozhraní. Nebo tak nějak, že? No musím to stále dokola projíždět v hlavě, abych to začal "vidět" očima programátorské logiky a né logikou českého jazyka..

Avatar
Odpovedá na krepsy3
Miroslav Mazal:15.8.2018 23:11

Když bych teď třeba psal program dále, a snažil jsem se někde později dát kostce "desetistena" např.parametr 8, tak to již program nedovolí. Je to tak?

Avatar
Odpovedá na Miroslav Mazal
Michal Haňáček:16.8.2018 7:03

Ahoj, je to tak.

Nejreálnější příměr je asi v reálné hrací kostce např. ze dřeva. Když někdo vyrábí kostku, ví předem že bude šestistenná a takovou jí udělá. Deseti, nebo čtyř stenou z ní potom také už neuděláš ... (jako víme že kde se vůle, tam je cesta a pilka svede ledasco, ale ... :-D ) a přesně pro stejný účel je v tomto případě konstruktor.

Odpovedať
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Odpovedá na Miroslav Mazal
Josef Horváth:16.8.2018 7:07

Ano, přesně tak. Díky zapouzdření objekt ochráníš proti nechtěným změnám. Atribut se v konstruktoru nastaví pouze jednou a víc se nemění.
Tím tedy zakážeš toto:

sestistenna.pocetSten = 10

A už se ti nestane, že po hodu šestistěnnou kostkou padne třeba číslo 9.

Obdobný příklad:

Auto cerveneAuto = new Auto(„cervena“);
cerveneAuto.barva = „modrá“;

Pokud bude atribut barva „private“, pak ti kousek kódu se změnou barvy neprojde. U menších projektů takovou blbost asi sám nenapíšeš, ale u větších a složitějších aplikací, už to tak jasné být nemusí. Proto nevystavuj ven nic, co už nebude třeba měnit! Když bys přece jen potřeboval zpřístupnit atribut zvenčí, použiješ k tomu vlastnost, ale o té se dozvíš až v lekci 10 – Vlastnosti. Proto vytrvej v tutoriálech a ono už ti to do sebe pak hezky zapadne.

Avatar
Miroslav Mazal:16.8.2018 18:51

Next nám vygeneruje jedno z čísel v posloupnosti, kterou si zvolíme. Třeba 2-7, ale co když si chceme sami definovat jaká čísla budou na šesti stranách? Třeba kostku s čísly 2, 3, 3, 4, 4, 5 ?

Avatar
Marek Uhlik
Člen
Avatar
Odpovedá na Miroslav Mazal
Marek Uhlik:16.8.2018 19:07

Vytvoříš si pole hodnot co ta kostka může mít, a to co hodíš bude hodnota pole s náhodně vygenerovanym indexem

public int hod()
{
        int[] hodnoty = {2,3,3,4,4,5};
        return random.Next(0, pocetSten);
}
Avatar
Marek Uhlik
Člen
Avatar
Marek Uhlik:16.8.2018 19:12

Tenhle return tam teda má bejt

return hodnoty[random.Next(0, pocetSten)];
Avatar
Miroslav Mazal:16.8.2018 20:01

Díky. Já jsem právě přemýšlel, jak ale generátor ví, že má vybírat z daných hodnot. Teď jsi mi to sám vysvětlil.

Avatar
Jiří Mancl
Člen
Avatar
Jiří Mancl:7.7.2019 10:38

Ahoj. Mám dotaz ohledně IntelliSense. Kde si nastavím rozšířenou nápovědu jako je v ukázce?
Mě se ukazuje pouze nějaká ořezaná. Přiložil jsem obrázky pro lepší pochopení. Díky

Avatar
Jakub Švasta
Lektor
Avatar
Odpovedá na Jiří Mancl
Jakub Švasta:7.7.2019 22:25

Ty popisky generuje automaticky Visual Studio podle toho, co napíšeš do dokumentace. Nad konstruktor přidej

/// <summary>
/// Vytvoří novou instanci hrací kostky
/// </summary>
/// <param name="pocetSten">Počet stěn hrací kostky</param>

Koukám, že v článku zrovna u konstruktoru tohle chybí, asi by bylo dobré to do něj doplnit.

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 159.