• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

OOP

Started by NDK, 22.09.2011, 21:02:52

« predchdzajce - alie »

Agamemnon

#425
máš tam rekurziu: return this.getWest();
daj tam return super.getWest();

edit:
premenné triedy by mali byť private... :) z istých filozofických dôvodov :)
All code is crap.

42

Cici

Quote from: veteran on  07.12.2011, 20:30:54Teda ešte inak povedané, screencasty u mňa suplujú cvičenia. Žiaľbohu, ja nie som žiaden génius, ktorý to celé pochopí z prednášok - osobne považujem prednášky z tohto predmetu za zbytočné. Radšej mohli byť dve cvičenia - a nie typu "ta tam na Moodli mate scenar, ta robte". Ja viem, je to VŠ, ale cvičenia takéhoto typu vlastne ani nemusia byť. Bohate stačilo rovno na začiatku semestra vypísať konzultačné hodiny a dovi-dopo...
Quote from: xxx3 on  07.12.2011, 19:05:41
mirek .. zas nie kazdy musi len opisovat tie zdrojaky, napriklad ja si to robim sam, ale ked s niecim uz fakt neviem pohnut alebo mi hadze nejake chyby a neviem prist nato co s tym tak sa pozriem do tych tutorialov a pridem na chybu, opravim si a je to ... co je na tom zle ? ... alebo sa niekto moze z toho aj ucit, pozrie si to a potom spravi aj sam

A čo tak sa spýtať na cvičení (alebo spolužiaka ktorý to možno vie) keď niečo neviem? Od toho tie cvičenia hádam sú. Teda aspoň s Mirekom je to tak že tie cvičenia sú o otázkach a odpovediach ... Javu som videl prvý krát tiež v septembri, nerobím textovku ale Freda (alternatívne zadanie) takže nemám v podstate žiadny takýto návod, no aj tak som dokázal spraviť skoro všetky veci čo bolo treba a čo som nevedel tak som sa dozvedel na cviku (alebo sme sa o tom bavili na izbe kým sne na niečo neprišli).
Dať niekomu hotovú odpoveď na otázku bez toho aby nad tým musel rozmýšľať je to najhoršie čo môže byť ... programovať sa dá naučiť len tak že nad tým človek bude sedieť až kým nepríde na nejaké riešenie (prípadne s nejakým hintom - ktorý ale len navedie na správnu odpoveď). Kto toto nechápe tak by tu nemal strácať čas a skúsiť niečo iné (k informatike programovanie myslím celkom patrí).

ps: oslovenie deti aj mne kus vadí ... samozrejme že sa necítim byt na rovnakej úrovni ako cvičiaci, ale zase na to že by sa nám v podstate malo vykať (čo sa mi tiež nepáči :D) je to až moc veľký extrém

matus217

Ozaj existuje aj taka moznost dostat viac bodov za zadanie nez 10 ?  ;D Ak je nejake namakane alebo tak ?

tas

Quote from: Cici on  08.12.2011, 08:32:26
Quote from: veteran on  07.12.2011, 20:30:54Teda ešte inak povedané, screencasty u mňa suplujú cvičenia. Žiaľbohu, ja nie som žiaden génius, ktorý to celé pochopí z prednášok - osobne považujem prednášky z tohto predmetu za zbytočné. Radšej mohli byť dve cvičenia - a nie typu "ta tam na Moodli mate scenar, ta robte". Ja viem, je to VŠ, ale cvičenia takéhoto typu vlastne ani nemusia byť. Bohate stačilo rovno na začiatku semestra vypísať konzultačné hodiny a dovi-dopo...
Quote from: xxx3 on  07.12.2011, 19:05:41
mirek .. zas nie kazdy musi len opisovat tie zdrojaky, napriklad ja si to robim sam, ale ked s niecim uz fakt neviem pohnut alebo mi hadze nejake chyby a neviem prist nato co s tym tak sa pozriem do tych tutorialov a pridem na chybu, opravim si a je to ... co je na tom zle ? ... alebo sa niekto moze z toho aj ucit, pozrie si to a potom spravi aj sam

A čo tak sa spýtať na cvičení (alebo spolužiaka ktorý to možno vie) keď niečo neviem? Od toho tie cvičenia hádam sú. Teda aspoň s Mirekom je to tak že tie cvičenia sú o otázkach a odpovediach ... Javu som videl prvý krát tiež v septembri, nerobím textovku ale Freda (alternatívne zadanie) takže nemám v podstate žiadny takýto návod, no aj tak som dokázal spraviť skoro všetky veci čo bolo treba a čo som nevedel tak som sa dozvedel na cviku (alebo sme sa o tom bavili na izbe kým sne na niečo neprišli).
Dať niekomu hotovú odpoveď na otázku bez toho aby nad tým musel rozmýšľať je to najhoršie čo môže byť ... programovať sa dá naučiť len tak že nad tým človek bude sedieť až kým nepríde na nejaké riešenie (prípadne s nejakým hintom - ktorý ale len navedie na správnu odpoveď). Kto toto nechápe tak by tu nemal strácať čas a skúsiť niečo iné (k informatike programovanie myslím celkom patrí).

ps: oslovenie deti aj mne kus vadí ... samozrejme že sa necítim byt na rovnakej úrovni ako cvičiaci, ale zase na to že by sa nám v podstate malo vykať (čo sa mi tiež nepáči :D) je to až moc veľký extrém

suhlasim.
na druhu stranu k slicku mas take kvantum tutorialov, ze ked to spojis s cviceniami, podla mna nie je mozne aby si to nespravil.
trochu ma tlaci cas tak len v rychlosti: tutoriali treba spravne vnimat, je to moznost ako sa nieco priucit, no treba pochopit aj co je za tym, nie to brat ako kucharku a ist krok po kroku bez toho aby som sa zamyslel preco

veteran

#429
Quote from: Cici on  08.12.2011, 08:32:26
Dať niekomu hotovú odpoveď na otázku bez toho aby nad tým musel rozmýšľať je to najhoršie čo môže byť ... programovať sa dá naučiť len tak že nad tým človek bude sedieť až kým nepríde na nejaké riešenie (prípadne s nejakým hintom - ktorý ale len navedie na správnu odpoveď). Kto toto nechápe tak by tu nemal strácať čas a skúsiť niečo iné (k informatike programovanie myslím celkom patrí).
Mne sa na takýchto "skopčených zdrojákoch" učí veľmi dobre. Na takýchto tutoriáloch ("živých príkladoch") som sa pred x rokmi naučil HTML, CSS-ko a čiastočne aj PHPčko i Céčko. Nevidím dôvod, prečo by som to takto nemal robiť aj s Javou, keď to u mňa proste funguje (Len podotýkam, že o existencii tutoriálu na Sokobana v LS som nemal ani potuchy ;)). A nemám pocit, žeby mi sledovanie tutoriálu nejako škodilo, pretože sa aj zamýšľam nad tým, ako to ten človek robí a prečo to tak robí. Nabudúce nech dá Steven doprava hore osemnástku v červenom krúžku...  :D Je to na každom jedincovi, aký systém učenia si vyberie. Každému proste vyhovuje niečo iné, či sa to niekomu páči alebo nepáči...

Ale pokiaľ niekto chce odovzdať kúpené/skopčené zadanie, v poriadku - doplatí na to on - alebo ho odhalí kontrola originality, alebo praktická časť skúšky. Je to výlučne na zodpovednosti každého jedinca a o jeho prístupe k predmetu. Privítal by som, aby neboli všetci hádzaní do jedného vreca a hromadne považovaní za nejakých podvodníkov alebo čo, len preto, že sledujú nejaký tutorial. Nie sme sopľavé dvanásťročné deti, aj keď to, žiaľbohu, niektorí učitelia zjavne takto vidia (a je úplne irelevantné koľko titulov pred či za menom dotyčný človek má. Mňa oslovenie "decko" dosť uráža). Každý sme zodpovední za seba a za svoje konanie. Ak niekto robí podvody, je to jeho vec. Je však na zodpovednosti cvičiacich a skúšajúcich, aby takýchto podvodníkov a špekulantov odhalili (a ja uznávam, že to majú ťažké). Mali by si radšej posvietiť na takých, čo nejakým zázrakom prešli v LS Programovaním a teraz na FJaP či UŠA nemajú páru ani len o základnej syntaxi Céčka...

Asi toľko k tejto téme som mal na srdci.

tino8

#430
ci boha, to nemyslite vazne ze este aj k dost podrobnemu navodu niekto nahral video kde to este viac vysvetluje  :ohmygod:

Quote from: veteran on  08.12.2011, 15:24:18
...
aha takze ak v svojom buducom zamestnani budes musiet pouzivat niejaku technologiu ktoru este nepoznas tak budes hladat rozpravky na youtube? alebo este lepsie, ak bude treba nieco nove navrhnut tak tiez youtube?


karamel je cukr co se uz neuzdravi!

veteran

Quote from: tino8 on  08.12.2011, 15:27:13
aha takze ak v svojom buducom zamestnani budes musiet pouzivat niejaku technologiu ktoru este nepoznas tak budes hladat rozpravky na youtube? alebo este lepsie, ak bude treba nieco nove navrhnut tak tiez youtube?
Táto otázka by bola na mieste, ak by som to z tutoriálu celé skopíroval a ďalej to neriešil. Čo môj prípad ale nie je... Mne to slúži ako učebný materiál - akurát to nemá formu knihy, ale videa. Mimochodom, doc. Tomášek na cvičeniach programuje úlohu po úlohe a vysvetľuje to, čo programuje. Tiež sú to "rozprávky"? Alebo to radšej nemám sledovať, aby mi to náhodou "neškodilo"? Je to v podstate to isté, akurát nečumím na monitor, ale na stenu.

tino8

je rozdiel medzi ukazanim principu na priklade a naprogramovanim celeho zadania na videu... a z vlastnych skusenosti viem ze je lepsie nieco vymysliest/vytvorit sam ako to vidiet hotove a pochopit tomu.


karamel je cukr co se uz neuzdravi!

veteran

Quote from: tino8 on  08.12.2011, 16:17:20
je rozdiel medzi ukazanim principu na priklade a naprogramovanim celeho zadania na videu...
Tomášek programuje zaradom všetko podľa návodu (okrem doplňujúcich úloh). A popri tom vysvetľuje. Samozrejme, je to podstatne zrýchlenejšie, než na videu. A samozrejme, že to často programuje ináč, čiže aj na tom sa dá veľa vecí pochopiť.

Quote from: tino8 on  08.12.2011, 16:17:20a z vlastnych skusenosti viem ze je lepsie nieco vymysliest/vytvorit sam ako to vidiet hotove a pochopit tomu.
Tak ja mám asi iné skúsenosti... Ja si pozriem video, pozriem si, čo sa robilo na cvičení, k tomu si zapnem návod a otvorím knihu a robím a špekulujem. Dá sa to len tak? Dá sa to aj ináč? Musí to byť práve takto? A to video mi strašne pomáha. Najmä vtedy, ak som niečomu na cvičení vôbec neporozumel. To je môj systém práce. Ak sa niekomu nepáči, ja to rešpektujem a nemám s tým problém. Privítal by som, aby bol rovnako rešpektovaný aj môj systém práce.

Opakujem ešte raz, ak by som zaradom flákal cvičenia, pozrel si iba to video, celé to skopčil a tváril sa spokojne, nepovedal by som ani slovo na tie "obvinenia" (alebo ako to nazvať) uvedené vyššie. Ale ja takto rozhodne nepostupujem, preto mám pocit, že som bol neprávom vhodený do vreca s ľuďmi, ktorí to len okopírujú, nemajú ani páru, čo píšu a dajú kamarátovi za jedno pivo niečo pomeniť a dokódiť, aby prešli originalitou. A to si píšte, že takí sú. A ak nebudú odhalení teraz na zápočte, tak celkom určite na skúške. Aspoň v to dúfam.

paloSK

Veteren, ak je pravda vsetko co pises, tak mi takyto comment na yt nedava zmysel.
QuoteTu na videu, keď si to na konci spustil, išlo ti to OK (aj uloženie, aj načítanie). Ja mám všetky triedy i metódy urobené úplne rovnako a keď načítavam uložený súbor, vypisuje mi chybu. Tento posledný tutoriál som pozeral už 4× - odpozeral som tvoj zdroják, porovnal so svojim. Žiaden preklep u seba som nenašiel. Je to vôbec "technicky" možné, že to tebe ide a mne nie a pritom máme zdrojáky rovnaké?

PS: To len mne jedinemu nevadi oslovenie dieta ?  ap
PS2: Tomu ze budu na skuske odhaleny vsetci co si zadanie nerobili sami, nech nikto neveri !

PS3: Sorry ze som sa votrel do tejto diskusie.
:D

veteran

#435
Quote from: paloSK on  08.12.2011, 17:45:52
Veteren, ak je pravda vsetko co pises, tak mi takyto comment na yt nedava zmysel.
QuoteTu na videu, keď si to na konci spustil, išlo ti to OK (aj uloženie, aj načítanie). Ja mám všetky triedy i metódy urobené úplne rovnako a keď načítavam uložený súbor, vypisuje mi chybu. Tento posledný tutoriál som pozeral už 4× - odpozeral som tvoj zdroják, porovnal so svojim. Žiaden preklep u seba som nenašiel. Je to vôbec "technicky" možné, že to tebe ide a mne nie a pritom máme zdrojáky rovnaké?
Už som to písal vyššie. Urobil som si to presne tak, ako na videu a mám aj niečo z cvičení, čo sme robili s Tomášekom. A sledujem, porovnávam, ako je čo urobené, aké iné varianty môžu byť, resp. prečo práve tak to musí byť, apod.

V tamtom konkrétnom prípade mi blblo to čítanie zo súboru. Preto som chcel vedieť, ako je to možné, že to mám bokom naprogramované celé rovnako a mne to nejde. Či môže byť chyba v knižnici (či v nej nebola nejaká zmena) alebo či je problém inde... Snažil som sa prísť na to, kde je problém... Ale preboha ne(s)kopčím to celé do finálnej podoby zadania.

Nabudúce tam asi o tom napíšem nejakú tritisíc znakovú esej, aby sa to nedalo vytrhávať z kontextu a príp. aby si niekto domýšľavý nemohol čo-to podomýšľať podľa vlastného gusta... A ešte: No offence, ale kopírovať komenty z iných stránok poza chrbát dotyčného za účelom "zarážania" sa nad jeho "konaním" bez toho, aby si dotyčný kopírujúci overil, ako to bolo myslené, mi pripadá mimoriadne neseriózne. Takto som bol vykreslený ako posledný blb, podvodník a "rozvracač systému" a ešte aj ako "malé decko"...

Neviem, no, pripadám si už ako Marťan. Je na takomto postupe riešenia zadania niečo zlé?  ???

paloSK

QuoteNeviem, no, pripadám si už ako Marťan. Je na takomto postupe riešenia zadania niečo zlé?
Nie nie, vsetko je ok. prepac ;)
:D

xxx3

#437
Agamemnon, diky .. to ma nenapadlo, dat tam super :D

Ale som zistil, ze este je chyba aj inde, ked dam prikaz "pouzi lano" furt mi vypisuje, ze Nepouzil si lano ked dam rozhliadni sa

zmenil som Use takto:
public GameState use(Game game) {
        if(game.getCurrentRoom().equals(tato)){
            tato.ropeUsed();
            game.getCurrentRoom().getWest();
           
        }
       
        return GameState.PLAYING;
    }


skusal som spustit debugger a vyzera to tak, ze ta podmienka v Use sa vyhodnoti ako false, takze k tato.ropeUsed(); sa vobec nedostane program ... ako spravit tu podmienku aby sa vyhodnotila kladne ked som v tej miestnosti IzbaSoSekerou ?

// a ked tam nedam podmienku, aby som sa dostal k tato.ropeUsed(); tak mi vyhodi chybu java.lang.NullPointerException

matus217

Skus si ten tvoj override getWest upravit ze ked nie je pouzity item tak nech ti vrati null miestnost, a az ked je pouzite tak cez else super getWest... a v tom use nemusis narabat s current miestnostou. Bud, alebo v tom use nastav rovno currentroom na getWest room. Snad pochopis to co som napisal :D

xxx3

#439
no velmi som to nepochopil co si napisal :D ... skor potrebujem zistit ako zavolat tu metodu ropeUsed() z triedy IzbaSoSekerou ... lebo hadze mi to tam NullPointerException

kedze premenna "tato" je zrejme null ... tak preto to hadze tu chybu .. ale co s tym ?

// vyriesil som to teda nejak pretypovanim, snad to bude OK

matus217

jj treba to pretypovat na triedu tej tvojej miestnosti s ktorou toto vystrajas :D
Tiez som vcera nad tym rozmyslal a takto to ide v pohode. Lebo ked pretypujes tak mozes pristupovat potom k metodam tej danej triedy, cize si spustis ten check...

xxx3

no hej, presne ... nato som nevedel prist :D ... nastastie ma to napadlo a moze mpokracovat dalej so zadanim .. kurnik blby scenar som si teda vymyslel xD

matus217

hehe  :) ja som nemal v scenari nic taketo, zato som ale na podobny styl pridal usmrcovadla aby som mohol pouzit viacej krat GameState.GAMEOVER  ;D predsa len to je potom vacsia sranda...

xxx3

a da sa nejak prekryt prikaz na pohyb napr. na  vychod ?

Lebo potreboval by som to spravit tak, ze ked som v miestnosti napr. so zombie tak ked nedam prikaz pouzi mec ale dam prikaz na pohyb na niektory smer tak sa hra skonci lebo som zomrel

Alebo ako spravit takyto pripad, ze chcem skoncit ked sa nieco nevykona ?
Lebo toto co som robil teraz je zle kvoli tomu, ze ked prekryjem napr. getWest tak hned ako vojdem do miestnosti kde mam nieco pouzit tam by mi to skoncilo, lebo pri pohybe do tej miestnosti sa vola getWest pri vypise moznych vychodov ... a ja potrebujem aby sa mi hra ukoncila nie hned ked vojdem do tej miestnosti ale az ked chcem ist z nej dalej bez pouzitia predmetu

matus217

Zatial ma nenapadlo ako nastavit gamestate v tej metode. Ja osobne som to riesil cez podmienky v prikazoch na pohyb s pouzitim nejakeho checku. Nie velmi elegantne riesenie, ale aspon funkcne...

mirek

Quote from: xxx3 on  07.12.2011, 19:05:41
mirek .. zas nie kazdy musi len opisovat tie zdrojaky, napriklad ja si to robim sam, ale ked s niecim uz fakt neviem pohnut alebo mi hadze nejake chyby a neviem prist nato co s tym tak sa pozriem do tych tutorialov a pridem na chybu, opravim si a je to ... co je na tom zle ? ... alebo sa niekto moze z toho aj ucit, pozrie si to a potom spravi aj sam
hned ti poviem, co je na tom zle. je bezne, studenti nevedia citat chybove hlasky a vyvodit z nich zaver. najcastejsi priklad je null pointer exception. ak je tvoj postup taky, ze to ohodnotis ako "stala sa chyba" a podla teba "to mas dobre", tak svoj problem vyriesis pohladom do hotoveho riesenia. ty si tym padom nevyriesil pricinu, pretoze jej nerozumies, ale vyriesil si nasledok, pretoze ho niekto vyriesil za teba. co ak budes nabuduce riesit nieco, kde opat dojde ku null pointer exception, ale uz k tomu nebude existovat ziadny screencast na youtube? kto to vyriesi za teba?
So say we all!

matus217

S tymto suhlasim... Clovek sa najlepsie priuci a pochopi to ked sa snazi opravit sam chybu.. Jednu chybu v parseri som opravoval 2 dni :D Ale od vtedy som ju uz nezopakoval, tak snad to bolo k niecomu dobre :)

mirek

Quote from: matus217 on  07.12.2011, 19:30:58
Ja osobne som pred tymto predmetom nikdy nevidel javu... Tieto videa mi pekne demonstrovali ako to vsetko funguje a pomohli mi lepsie pochopit princip.
Quote from: matus217 on  07.12.2011, 19:30:58
Na druhu stranu, tiez v tom nevidim problem, ak clovek z videi vycita len system a pochopi fungovanie javy, ako sa tie instancie spravaju, ako sa to vsetko prepaja atd... Pre mna to bola ucebna pomocka :)
aj pred tebou boli ludia, ktori predtym nikdy nevideli javu a zvladli to (dokonca aj stevo je taky pripad, ze jeho programatorsku karieru nastartoval az karel a je jasnym dokazom toho, ze sa to naucit da ;).

ak vsak chces z videi vycitat len system a pochopit fungovanie javy, preco nepozeras ine videa? napriklad java programming tutorial? preco necitas odporucanu literaturu alebo java sun tutorial? je mi to jasne, pretoze ziadny z tychto materialov neriesi zadanie, ktore mas odovzdat a za ktore mas byt ohodnoteny. napriklad je mi zvlastne, ze sa tu nikde neobjavili ine textovkove screencasty a dokonca po cesky. sak na co hladat, ked stevo vyriesil konkretny vas problem, ze?

o ferovosti sa tu rozpisovat netreba - su ludia, ktori to cele urobili sami a stavili nad tym more casu. a su ludia, ktori to len prepisali. hodnoteni budu ale rovnako. hmm... ti, co to len prepisali, su asi sikovnejsi, lebo lepsie vyuzili cas a nestracali ho so zbytocnostami...
So say we all!

matus217

Quote from: mirek on  08.12.2011, 19:38:43
Quote from: matus217 on  07.12.2011, 19:30:58
Ja osobne som pred tymto predmetom nikdy nevidel javu... Tieto videa mi pekne demonstrovali ako to vsetko funguje a pomohli mi lepsie pochopit princip.
Quote from: matus217 on  07.12.2011, 19:30:58
Na druhu stranu, tiez v tom nevidim problem, ak clovek z videi vycita len system a pochopi fungovanie javy, ako sa tie instancie spravaju, ako sa to vsetko prepaja atd... Pre mna to bola ucebna pomocka :)
aj pred tebou boli ludia, ktori predtym nikdy nevideli javu a zvladli to (dokonca aj stevo je taky pripad, ze jeho programatorsku karieru nastartoval az karel a je jasnym dokazom toho, ze sa to naucit da ;).

ak vsak chces z videi vycitat len system a pochopit fungovanie javy, preco nepozeras ine videa? napriklad java programming tutorial? preco necitas odporucanu literaturu alebo java sun tutorial? je mi to jasne, pretoze ziadny z tychto materialov neriesi zadanie, ktore mas odovzdat a za ktore mas byt ohodnoteny. napriklad je mi zvlastne, ze sa tu nikde neobjavili ine textovkove screencasty a dokonca po cesky. sak na co hladat, ked stevo vyriesil konkretny vas problem, ze?

o ferovosti sa tu rozpisovat netreba - su ludia, ktori to cele urobili sami a stavili nad tym more casu. a su ludia, ktori to len prepisali. hodnoteni budu ale rovnako. hmm... ti, co to len prepisali, su asi sikovnejsi, lebo lepsie vyuzili cas a nestracali ho so zbytocnostami...
Tak ked uz sme pri tom, tak pozeral som aj ine videa, a cital som aj odporucanu literaturu. Konkretne stevove videa som mal ako ucebnu pomocku, ktora nebola JEDINA. Kvoli zadaniu chodim spavat posledne dva tyzdne o stvrtej rano. Tak dufam ze sa mi investovany cas aj nalezito zuroci...

sulo

#449
Quote from: xxx3 on  08.12.2011, 20:19:57
jedna trieda nemoze dedit z dvoch tried ?

V Jave nie. Väčšinou na to ani nie je dôvod. Ak potrebuješ z niektorej triedy len funkcionalitu, použi kompozíciu (daj to triedy členskú premennú typu, ktorý potrebuješ).

Ak predsa len potrebuješ rozhrania (nie iba funkcionalitu) oboch tried, čiže je nutné, aby sa výsledná trieda dala pretypovať na obidva typy, vytvor z jednej z nich rozhranie. Toto rozhranie bude potom výsledná trieda implementovať. A na samotnú implementáciu použi opäť napr. kompozíciu.