| | |
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Autor | Správa |
---|
Registrovaný: 11.02.09 Prihlásený: 28.03.23 Príspevky: 2208 Témy: 145 Bydlisko: Liptovský M... |
Nejak nemozem pochopit jedno: Kód: Objekt obj = new Objekt() { ...prikazy... } Co znamena takato syntax, kedy sa vlastne spusti ten kod v { } ? Konkretne som to videl tu: Kód: Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override public void run() { // Your database code here } }, 1000); Vytvori sa novy objekt timer, vola sa jeho metoda shedule(), ktora ma ako parameter novy objekt TimerTask() a za nim spominane { } s nejakym kodom. Ten sa ako vykonava kedy?
_________________ "Only a warrior chooses pacifism, others are condemned to it." - unknown author |
|
Registrovaný: 27.12.08 Prihlásený: 13.12.22 Príspevky: 1874 Témy: 96 Bydlisko: Bratislava,... | Napísal nBXXL: 03.04.2014 1:11 | |
|
Ten zapis je zhruba ekvivalentny tomuto: Kód: class Temporary extends TimerTask { @Override public void run() { // your code here // } Temporary() { super(); } }
timer.schedule(new Temporary());
Pouziva sa najma vtedy, ked mas nejaku class-u ktora ti robi vsetko co ma, ale potrebujes v nej jednorazovo zmenit nejaku metodu. Vtedy nema zmysel pomenovavat takto pozmenenu class-u, takze moze ostat anonymna. Ine pouzitie je na simulaciu anonymnych funkcii (lambda funkcie), kedze Java ich dostala az nedavno vo verzii 8. Anonymne funkcie sa v roznych jazykoch zvyknu pouzivat vtedy, ked potrebujes predat funkciu ako argument k inej funkcii a ta funkcia, ktoru predavas ako argument sa nevola nikde inde (tj. nema zmysel ju ukladat / pomenuvat). Vacsinou pri robeni roznych callback-ov, ako napr. pri Timer-och, Event Listener-och apod.
_________________ ~Listen to your brain, not your heart~ NB1: Lenovo Y500: CPU: Intel Core i7-3630QM; GPU: nVidia GT650M 2GB SLi; RAM: 16GB DDR3; HDD: 1TB + 256GB SSD (m4); LCD: 15,6" 1920x1080; OS: Win8.1 64-bit + Arch Linux 64-bit (UEFI Powered DualBoot) NB2: Asus K53SJ-SX093: CPU: Intel Core i3-2310M; GPU: Intel HD3000 / nVidia GT520M 1GB Optimus; RAM: 8GB DDR3; SSD: 128GB 840Evo; LCD: 15,6" 1366x768; OS: Win 8.1 Pro 64-bit (UEFI) |
|
Registrovaný: 11.02.09 Prihlásený: 28.03.23 Príspevky: 2208 Témy: 145 Bydlisko: Liptovský M... |
Aha, a co robi ta metoda: temporary () { super();}. Spusta konstruktor nadradenej triedy TimerTask?
_________________ "Only a warrior chooses pacifism, others are condemned to it." - unknown author |
|
Registrovaný: 27.12.08 Prihlásený: 13.12.22 Príspevky: 1874 Témy: 96 Bydlisko: Bratislava,... | Napísal nBXXL: 03.04.2014 15:02 | |
|
hej.. (teda v principe naznacujem ze s konstruktorom sa nic nestane, neviem z hlavy ci v Jave musi mat podtrieda vlastny konstruktor alebo nie)
v principe ide o to, ze pocas vytvorenia objektu si ho mozes "on-the-fly" trocha pozmenit (upravit mu jednu / viac funkcii) tak aby ti vyhovoval.. a tieto zmeny funguju uplne rovnako ako keby si si z toho objektu vytvoril extended class-u, a zapisal do tych kuceravych zatvoriek jej telo, vytvoril objekt tej extended class-y, priradil ho do referencie typu nadradenej class a zabudol na to, ako si tu rozsirenu class povodne pomenoval.
_________________ ~Listen to your brain, not your heart~ NB1: Lenovo Y500: CPU: Intel Core i7-3630QM; GPU: nVidia GT650M 2GB SLi; RAM: 16GB DDR3; HDD: 1TB + 256GB SSD (m4); LCD: 15,6" 1920x1080; OS: Win8.1 64-bit + Arch Linux 64-bit (UEFI Powered DualBoot) NB2: Asus K53SJ-SX093: CPU: Intel Core i3-2310M; GPU: Intel HD3000 / nVidia GT520M 1GB Optimus; RAM: 8GB DDR3; SSD: 128GB 840Evo; LCD: 15,6" 1366x768; OS: Win 8.1 Pro 64-bit (UEFI) |
|
Registrovaný: 11.02.09 Prihlásený: 28.03.23 Príspevky: 2208 Témy: 145 Bydlisko: Liptovský M... |
A co keby to tam nebolo a bola by tam len metoda run?
btw. ak nema podtrieda vlastny konstruktor tak sa automaticky vola konstruktor nadradenej triedy - niekde som to cital.
_________________ "Only a warrior chooses pacifism, others are condemned to it." - unknown author |
|
Registrovaný: 15.01.07 Prihlásený: 23.09.15 Príspevky: 186 Témy: 3 Bydlisko: ZV/BA | Napísal matwej: 13.04.2014 4:37 | |
|
keby si tam strelil len telo metody ako objekt donutra, asi by to nebolo velmi cool, nie? telo metody nemoze byt objekt samo o sebe IBA AK nahodou nepouzivas java 8cku a ako uz spominal kolega vyssie, funcionalne interfaces ako Runnable sa daju uz pouzivat na lambda vyrazy a teda je uz mozne napchat cisto anonymnu metodu do tela metody (zda sa, ze oracle ide pomalicky tahat javu kusok k funkcionalnemu programovaniu)
_________________ nb: Lenovo Thinkpad E520 (starsi pan uz), Fedora 20 / Win7 dualboot " 1000.times { puts "I will not spam on the boards" } " |
|
| Stránka: 1 z 1
| [ Príspevkov: 6 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| pomoc pri vytvarani fora v Redakčné systémy | 4 | 579 | 10.12.2006 16:30 KillerSVK | | HDD: problem pri vytvarani particie v Pevné disky a radiče | 3 | 540 | 07.03.2009 11:53 McDog | | Chyba pri vytvarani Google konta v Smartfóny a tablety | 1 | 356 | 14.03.2012 22:35 Qpkqkma | | Problem pri vytvarani nahladov obrazka v PHP, ASP | 0 | 464 | 17.04.2010 13:18 newboy1 | | PHP: Kodovanie pri vytvarani .csv v PHP, ASP | 2 | 610 | 22.08.2011 10:36 camo | | sass - error pri kompilacii (syntax) v HTML, XHTML, XML, CSS | 3 | 490 | 29.08.2017 21:18 17mark | | kód chyby 0x80070570 pri instal win7 v Operačné systémy Microsoft | 6 | 1501 | 31.08.2012 11:18 zentin | | pri výpise z datzabázy mi nevypíše celý php kód v PHP, ASP | 2 | 464 | 13.04.2009 18:39 Unlink | | Java - kompilovanie - pomoc pri hľadaní chýb v Assembler, C, C++, Pascal, Java | 5 | 1133 | 13.04.2008 21:19 m@-nX | | kniha o vytvárani firewallu v Bezpečnosť a firewally | 0 | 405 | 26.07.2012 19:55 FBerente | | [Java] Problém s kódovaním pri zasielaní do MySQL v Assembler, C, C++, Pascal, Java | 0 | 313 | 21.09.2011 18:21 ViVe®s | | Zabezpečenie vonkajšieho objektu v Ostatné | 6 | 705 | 17.01.2019 13:48 LukIneskoNR | | zafixovanie objektu na stránke v HTML, XHTML, XML, CSS | 5 | 559 | 22.01.2011 16:58 davider137 | | Rozdiel medzi Java Standard a Java EE v Assembler, C, C++, Pascal, Java | 1 | 845 | 02.04.2014 12:41 XOLOO | | dobre java navody a nova tema JAVA [ Choď na stránku: 1, 2 ] v Assembler, C, C++, Pascal, Java | 35 | 5441 | 09.03.2009 17:14 tlacitko Enter | | browser game - casova slucka objektu v JavaScript, VBScript, Ajax | 1 | 541 | 08.03.2016 15:41 killer |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|