NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 2 - První objektová aplikace v C# - Hello object world

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
KubaP
Člen
Avatar
Odpovídá na Kit
KubaP:30.12.2013 16:49

Jo tak. Díky za upřesnění - už se v tom začínám orientovat mnohem lépe!

 
Odpovědět
30.12.2013 16:49
Avatar
Odpovídá na Kit
Michal Žůrek - misaz:30.12.2013 19:19

nyní však neví co ten while dělá dal by tam funkci SpocitejVysledky() tak by věděl co to i dělá.

 
Odpovědět
30.12.2013 19:19
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Kit:30.12.2013 19:33

Vím, kam míříš, ale na refaktorování je tam toho víc.

Odpovědět
30.12.2013 19:33
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
KubaP
Člen
Avatar
Odpovídá na Kit
KubaP:30.12.2013 21:02

Počkejte, tak teď jsem trošku zmaten:-) Je mé řešení tedy správné? Nebo spíš, objektově správné? Proč dávat funkci SpocitejVysledky()? A vím co je while:-)

 
Odpovědět
30.12.2013 21:02
Avatar
Kit
Tvůrce
Avatar
Odpovídá na KubaP
Kit:30.12.2013 22:09

Pokud se někde píše o refaktorování, tak to znamená, že program je správně. Jen je vhodné ho přepsat do nějaké přehlednější a robustnější podoby při zachování funkčnosti.

Odpovědět
30.12.2013 22:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na KubaP
Neaktivní uživatel:30.12.2013 22:11

Zjednodušeně -> na první pohled není jasné, co while dělá. Jakmile jeho obsah přesuneš do metody SpocitejVysledky, tak koukneš a vidíš. A bude se to snáze upravovat.

Odpovědět
30.12.2013 22:11
Neaktivní uživatelský účet
Avatar
KubaP
Člen
Avatar
Odpovídá na Neaktivní uživatel
KubaP:31.12.2013 8:29

Čili nějak takhle?

třída Kalkulator

class Kalkulator
{
    public double cislo1;
    public double cislo2;
    public string pokracovat;

    public string SpocitejVysledky()
    {
        return pokracovat;
    }
    public double Soucet()
    {
        return cislo1 + cislo2;
    }
    public double Soucin()
    {
        return cislo1 * cislo2;
    }
    public double Rozdil()
    {
        return cislo1 - cislo2;
    }
    public double Podil()
    {
        return cislo1 / cislo2;
    }
}

statická metoda Main

static void Main(string[] args)
{
    Kalkulator kalkulacka = new Kalkulator();
    kalkulacka.pokracovat = "ano";

    while (kalkulacka.pokracovat == "ano")
    {
        Console.Write("Zadej prvni cislo: ");
        double a = double.Parse(Console.ReadLine());
        Console.Write("Zadej druhe cislo jo: ");
        double b = double.Parse(Console.ReadLine());

        kalkulacka.cislo1 = a;
        kalkulacka.cislo2 = b;

        Console.WriteLine("Soucet: {0}", kalkulacka.Soucet());
        Console.WriteLine("Soucin: {0}", kalkulacka.Soucin());
        Console.WriteLine("Rozdil: {0}", kalkulacka.Rozdil());
        Console.WriteLine("Podil: {0}", kalkulacka.Podil());

        Console.WriteLine("\nPrejete si pokracovat? ano/ne");
        kalkulacka.pokracovat = Console.ReadLine().ToLower();
    }
}
 
Odpovědět
31.12.2013 8:29
Avatar
KubaP
Člen
Avatar
Odpovídá na Kit
KubaP:31.12.2013 8:36

Trošku jsem tedy refaktoroval:-)

 
Odpovědět
31.12.2013 8:36
Avatar
MrPabloz
Člen
Avatar
Odpovídá na KubaP
MrPabloz:31.12.2013 9:02

I když děláš tak jednoduchou věc jako je kalkulačka nezapomeň ošetřit to, že nelze dělit nulou:)

Odpovědět
31.12.2013 9:02
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Kit
Tvůrce
Avatar
Odpovídá na KubaP
Kit:31.12.2013 9:07

Skutečně jen trošku a zrovna tam, kde to vůbec nebylo potřebné.

Odpovědět
31.12.2013 9:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 217.