IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.
Avatar
Ľuboš Čurgó
Tvůrce
Avatar
Ľuboš Čurgó:13.4.2013 13:05

Ahojte, zacinam z oop a nejako nechapem jednej veci. Teoreticky by podla tohto kodu malo nastat to ze ked zavolam v maine metodu Insert tak by sa mala z class Add odkazat na metodu Vloz v class Read a vlozit do artributu slovo hodnotu "nazdar". Ale miesto toho je tam stale hodnota "ahoj". Moze mi niekto prosim vysvelit preco, a ako toto obísť?

class Read
    {
        string slovo = "ahoj";

        public void Vloz()
        {
            slovo = "nazdar";
        }
class Add
    {
        Read read = new Read();
        public void Insert()
        {
            read.Vloz();
        }
static void Main(string[] args)
        {
            Add add = new Add();
            add.Insert();
            Console.ReadKey();

        }
Editováno 13.4.2013 13:07
 
Odpovědět
13.4.2013 13:05
Avatar
Odpovídá na Ľuboš Čurgó
Michael Olšavský:13.4.2013 13:24

Ten kód je správně. Funguje. Ale ten návrh je trošku mimo. Proč máš třídu ve třídě, ještě k tomu ve třídě Read vkládání... Vůbec se mi nelíbí. OOP je zde mimochodem od toho, aby přiblížilo programování trochu blíže reálnějšímu světu. Od kdy při čtení vkládáš text a při vkládání ho čteš a zároveň zdezačínáš volat metody.

Editováno 13.4.2013 13:24
 
Nahoru Odpovědět
13.4.2013 13:24
Avatar
Ľuboš Čurgó
Tvůrce
Avatar
Ľuboš Čurgó:13.4.2013 13:35

je to iba ako ukazka kodu, na ktorej chcem vediet preco to nerobi to co by malo. A trieda Read a Add su neni v sebe len mi chyba na konci } preco to tak vyzera.

 
Nahoru Odpovědět
13.4.2013 13:35
Avatar
Odpovídá na Ľuboš Čurgó
Michael Olšavský:13.4.2013 13:36

Já to zkoušel a funguje to, jak si chtěl.

 
Nahoru Odpovědět
13.4.2013 13:36
Avatar
Ľuboš Čurgó
Tvůrce
Avatar
Ľuboš Čurgó:13.4.2013 13:40

Myslel som to takto, z toho prveho kodu sa to asi tazko pochopi.. Proste ked zavolam v maine metodu Vypis() tak chcem aby mi vypisalo artribut z hodnotou "nazdar" a nie "ahoj".

class Add
    {
        Read read = new Read();
        public void Insert()
        {
            read.Vloz();
        }
    }
    class Read
    {
        string slovo = "ahoj";

        public void Vloz()
        {
            slovo = "nazdar";
        }

        public void Vypis()
        {
            Console.WriteLine(slovo);
        }
    }
 static void Main(string[] args)
        {
            Add add = new Add();
            Read read = new Read();
            add.Insert();
            read.Vypis();
            Console.ReadKey();
 
Nahoru Odpovědět
13.4.2013 13:40
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Ľuboš Čurgó
David Hartinger:13.4.2013 13:45

Před vypiš musíš v tom případě volat vlož. Jinak to pojmenování tříd je hrozné, uč se spíše na třídách typu Clovek, Auto a podobně, co se dá představit, tohle tě jen plete.

Nahoru Odpovědět
13.4.2013 13:45
New kid back on the block with a R.I.P
Avatar
Ľuboš Čurgó
Tvůrce
Avatar
Odpovídá na David Hartinger
Ľuboš Čurgó:13.4.2013 13:50

A nestaci ked sa zavola metoda insert v maine a ta sa sama odkaze na tu metodu vloz?

 
Nahoru Odpovědět
13.4.2013 13:50
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Ľuboš Čurgó
David Hartinger:13.4.2013 13:52

Ale ty máš 2 instance toho read. Vypis voláš na jiné, než na které voláš Insert. new Read tam máš 2x, se podívej. Opravdu si to přepiš na jiný příklad.

Nahoru Odpovědět
13.4.2013 13:52
New kid back on the block with a R.I.P
Avatar
Ľuboš Čurgó
Tvůrce
Avatar
Odpovídá na David Hartinger
Ľuboš Čurgó:13.4.2013 13:54

aha na to som uplne zabudol, ono je jedno jak to mam pomenovane, je to len na ukazku. Dakujem :]

 
Nahoru Odpovědět
13.4.2013 13:54
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 9 zpráv z 9.