Stránka 1 z 1
This()
Napsal: úte 2. pro 2008, 07:14
od wokena
Ahoj,poraďte mi prosím,jak se používá this() na volání konstruktorů,zkoušel jsem to,ale netBeans mi vyhazuje chybu.
Re: This()
Napsal: úte 2. pro 2008, 12:12
od Teuzz
pokud v tom píšeš Javu, snad by měla být odpověď nijak.
Alespoň v C# a C++ je konstruktor věc, která "se volá" při vytvoření instance třídy (až dojdeš k dědičnosti a virtuálním metodám, zjistíš, že lžu) tzn. ve chvíli, kdy někde voláš new mojeTrida() a volá se zvenčí.
Re: This()
Napsal: úte 2. pro 2008, 13:59
od wokena
Jo,v C taky dělám,ale konstruktor v java je nejenom metoda,ktera se vola pri vytvoreni instance,ale muzes ji pouzivat i jako normalni metodu.
Re: This()
Napsal: úte 2. pro 2008, 15:35
od k23
wokena píše:Ahoj,poraďte mi prosím,jak se používá this() na volání konstruktorů,zkoušel jsem to,ale netBeans mi vyhazuje chybu.
Co si představuješ pod this() ? Můžeš to rozvést? Jak bylo řečeno v jiném threadu, this je klíčové slovo a ne metoda.
Navíc, měl bys pouvažovat nad "NetBeans mi vyhazuje chybu"... ono se totiž dost často hodí vědět, jakou chybu.
Re: This()
Napsal: úte 2. pro 2008, 18:00
od wokena
Jo,this není metoda,ale používá se taky na volání konstruktorů (konstruktor je metoda,která se dá použít jednak při vytváření instancí,a jednak ji můžeš využít jako normální metodu).A právě mi NetBeans háže chybu (podtrhnutý this),když se pokouším pomocí this volat konstruktory.Syntaxe je:
Kód: Vybrat vše
...
public void metoda() {
this(parametry_konstruktoru);
}
...
Tak nevím,proč mi to NetBeans označuje za chybu,když jsem to opsal přesně z knížky.
P.S.:Jestli chcete screenshoot tak ho uděám.
Re: This()
Napsal: úte 2. pro 2008, 19:41
od Reba
A nepíše ti to chybu:
"call to this must be first statement in constructor"?
Re: This()
Napsal: úte 2. pro 2008, 21:10
od wokena
Jo,píše-co to znamená ?
Re: This()
Napsal: úte 2. pro 2008, 22:07
od Reba
No přijde mi to divný, podle mě by to this() mělo bejt v konstruktoru na prvnim místě, jak je tam psáno a ne v metodě.
Re: This()
Napsal: stř 3. pro 2008, 07:07
od wokena
No,co se s tím má dělat?
Re: This()
Napsal: čtv 4. pro 2008, 00:55
od Reba
No to záleží, co ty chceš udělat.. this() se asi dá zavolat pouze v konstruktoru na prvním místě, což je něco jako super() při dědičnosti, když voláme konstruktor předka. Potřebuješ s tim něco konkrétního?
Re: This()
Napsal: čtv 4. pro 2008, 07:42
od wokena
Takže this je opak super(u dědičnosti),a naopak,že?
Re: This()
Napsal: pát 5. pro 2008, 13:23
od Trek
super vola metodu predka
this vola metodu aktualniho objektu
pokud z konstruktoru volas jinej konstruktor musi to this bejt jako
prvni z logickych duvodu
co je na tom nejasnyho
v C++ je to osetreny, ze to pises hned za zavorkama a dvouteckou, takze tam tohle lamereni odpada