Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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
Selak
Člen
Avatar
Selak:30.10.2014 18:01

Ahoj,chci se zeptat na proměnnou this koukal jsem se na tutoriál,kde bylo o čem to je,koukal jsem se i na komentáře,ale moc mi to nedalo,tak se chci zeptat tady.Učím se ted v c# OOP jak udělat toho bojovníka a arénu atd. a koukal jsem jak tady ve zdrojových kódech i jinde v knížkách,že proměnná this se dost používá,tak bych to rád pochopil dobře.Děkuji.

 
Odpovědět
30.10.2014 18:01
Avatar
Lukáš Křehula:30.10.2014 18:16

this = aktuální instance třídy
Když máš třeba okno pojmenovaný "Form1" a napíšeš this, tak se odkazuješ na ten Form1

tzn

this.Size = new Size(100,100);

je totožné s tímto

Form1.Size = new Size(100,100);
Editováno 30.10.2014 18:16
 
Nahoru Odpovědět
30.10.2014 18:16
Avatar
Selak
Člen
Avatar
Selak:30.10.2014 18:20

Jo aha děkuji.Asi to chápu,ale pro jistotu jak by to bylo tady v tom příkladě?

public Kostka(int pocetSten)
{
this.pocetSten = pocetSten;
random = new Random();
}

 
Nahoru Odpovědět
30.10.2014 18:20
Avatar
Selak
Člen
Avatar
Odpovídá na Lukáš Křehula
Selak:30.10.2014 18:22

Už to chápu nemusíš odpovídat díky moc,konečně se můžu vrhnout do nových tutoriálů :D

 
Nahoru Odpovědět
30.10.2014 18:22
Avatar
Hit
Člen
Avatar
Odpovídá na Selak
Hit:30.10.2014 18:23

Čus, this není proměnná, spíš bych to nazval ukazatelem na aktuální instanci, pomocí, kterého můžeš přistupovat k jednotlivým proměnným, pro příklad si vezmi např. třídu Člověk, ta bude mít proměnné jméno a věk, při vytváření instance třídy člověk budeš chtít tyhle hodnoty nastavit, to znamená v konstruktoru.

public class Clovek{
        private String name;
        private int age;

        //konstruktor
        public Class(String name, int age){
                this.name = name;
                this.age = age;
        }
}

Tady jsi jedné konkrétní instanci nastavil jméno Lukáš a věk 22.

Instanci pak vytvoříš

Clovek c = new Clovek("Lukáš", 22);
Nahoru Odpovědět
30.10.2014 18:23
Life's not about how hard you can hit, it's about how hard you can GET hit and keep moving forward.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Hit
David Hartinger:30.10.2014 19:02

To může i bez this když je pojmenuje jinak, to jsi mu to moc nevysvětlil. Mám dojem, že je tam na to nějaké cvičení. Každopádně si představ, že máš třídu garáž a auto:

class Auto
{

}

class Garaz
{
        public auto;
}

Garáž má jako atribut auto, které v ní je uložené. Teď jak dát auto metodu, která ho zaparkuje do garáže?

class Auto
{

        public void ZaparkujDoGaraze(Garaz garaz)
        {
                garaz.auto = this;
        }

}

Do garáže se uloží to auto, na kterém se metoda volá. Tedy this. Program je potom:

class Program
{

        public static void main()
        {
                Garaz garazePraha = new Garaz();
                Auto skoda = new Auto();
                Auto bmw = new Auto();
                skoda.ZaparkujDoGaraze(garazePraha);
                bmw.ZaparkujDoGaraze(garazePraha);
        }

}

Poprvé je v this skoda, podruhé tam je bmw. Je tam zkrátka ta instance, na které se volá ta metoda.

Pokud to pořád nepochopí tak fakt doporučuji ta cvičení.

Nahoru Odpovědět
30.10.2014 19:02
New kid back on the block with a R.I.P
Avatar
Selak
Člen
Avatar
Odpovídá na David Hartinger
Selak:30.10.2014 19:26

Docela už to chápu cvičení si určitě udělám,ale je mi 14,nějakou tu kreditku nemám a máma to taky nepodporuje.Jedině jak jsem někde četl,že někdy to bude za sms,ale to by bylo asi předražený.No chvíli počkám,včera jsem si po druhý podal žádost o redaktorská práva,tak chvíli počkám a kdyžtak potom si zkusím na ty cvičení našetřit :)

 
Nahoru Odpovědět
30.10.2014 19:26
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Selak
David Hartinger:30.10.2014 19:39

To se tu již milionkrát řešilo, místo do MC Donald's si zajdi na poštu. Vyplníš poukázku A a můžeš si koupit cvičení, opravdu zde není na co se vymlouvat. Na dalších platebních metodách se pracuje.

Nahoru Odpovědět
30.10.2014 19:39
New kid back on the block with a R.I.P
Avatar
Selak
Člen
Avatar
Odpovídá na David Hartinger
Selak:30.10.2014 19:44

Jo aha to promin sice jsem se díval,ale nenašel jsem to.Ale je to teda super v pátek nebo v pondělí si tam zajdu nějaký prachy mám našetřený,tak vím kam to dám . :O

 
Nahoru Odpovědět
30.10.2014 19:44
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.