Author Topic: Objektové programovanie  (Read 140164 times)

mirek

  • Sr. Member
  • ****
  • Posts: 448
  • darkman ZX 128k
    • View Profile
    • domovská stránka
Re: Objektové programovanie
« Reply #150 on: 16.11.2009, 03:57:16 »
uz sa tesim  :banana_guitar: ta bakalarka ma dost chytila, takze som rada, ze v tom budem moct pokracovat :) myslite, ze blueJ nejak pomohol pri vyucbe? naozaj sa chapu zaciatocnikom tie suvislosti lepsie alebo to este neviete zhodnotit?

no - ked som mal v lete opakujucich tretiakov (tvoji spoluziaci niektori), tak sme pouzivali object test bench vo visualku. a aj ked na zaciatku trosku frflali, lebo nerozumeli, ze na co, tak potom  pochopili.

co sa tyka bluej, tak este neviem - anketa uz bola, ale zabudol som polozit tu otazku. takze hadam na konci sa opytat nezabudnem ;) ale trufnem si povedat, ze to priblizilo prave metodiku - zacat s objektmi (objects first approach).
So say we all!

leniocka

  • Full Member
  • ***
  • Posts: 192
    • View Profile
Re: Objektové programovanie
« Reply #151 on: 16.11.2009, 04:05:42 »
mne sa to pacilo, lebo mne trvalo par tyzdnov, kym som pochopila o com to je  ;D

mirek

  • Sr. Member
  • ****
  • Posts: 448
  • darkman ZX 128k
    • View Profile
    • domovská stránka
Re: Objektové programovanie
« Reply #152 on: 16.11.2009, 04:28:40 »
mne sa to pacilo, lebo mne trvalo par tyzdnov, kym som pochopila o com to je  ;D

no hej - ked uz vies programovat, tak ta taky nastroj iba zdrzuje. ale pre tych, ktori s programovanim zacinaju (tentokrat s objektovym), je to velmi fajna pomocka ako pochopit, o com to oop vlastne je.
So say we all!

leniocka

  • Full Member
  • ***
  • Posts: 192
    • View Profile
Re: Objektové programovanie
« Reply #153 on: 16.11.2009, 04:50:51 »
no, asi som to zle napisala... mne trvalo dlhsie pochopenie OOP, kedze som v tom nevidela objekty a na strednej som mala 2 roky pascal + v 1. rocniku Ccko a na cvikach sme robili tie battleships a nevedela som si to dat dokopy s textovou formou... ale po par tyzdnoch mi doslo co a jak, no s takym nastrojom by som to zrejme pochopila skor

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: Objektové programovanie
« Reply #154 on: 16.11.2009, 04:52:37 »
pozrel som si tie cvika a su podla mna tak dobre spravene ze aj ked som 4tak a mam kopec inej prace nedalo mi neskusit si spravit tu hru

bolo by fajn mat v Backpack aj take nieco ako: -  public List getList()  :puf:

myslim ze mirek odviedol fakt dobru pracu   :)

diky za pochvalu ;) az sa nemozem neusmievat, ze aj ti, co uz nemusia, si to radi prejdu ;) len potvrdzujes, ze sme sa vydali dobrym smerom ;) a ak sa tu este objavis, tak skus porovnat - ako to bolo, ked ste to riesili vy (vtedy este nebola taka paradna ta kniznica) a ako to je teraz.

ku backapku - ano - mohlo to tam byt, ale nie je - viacmenej je to zamer typu - vyrieste si to po svojom. lebo jedno riesenie moze byt pomocou navrhovanej metody getList() a druhe moze byt napriklad upravou triedy a implementovanim rozhrania (teraz neviem, ako sa vola), pomocou ktoreho budes moct z backpack-u spravit kolekciu a aplikovat na nu foreach. takze - toto je naozaj na riesiteloch, ako sa s tym popasuju.

sa to volá, že Iterator design pattern :)
All code is crap.

42

mirek

  • Sr. Member
  • ****
  • Posts: 448
  • darkman ZX 128k
    • View Profile
    • domovská stránka
Re: Objektové programovanie
« Reply #155 on: 16.11.2009, 05:07:14 »
no, asi som to zle napisala... mne trvalo dlhsie pochopenie OOP, kedze som v tom nevidela objekty a na strednej som mala 2 roky pascal + v 1. rocniku Ccko a na cvikach sme robili tie battleships a nevedela som si to dat dokopy s textovou formou... ale po par tyzdnoch mi doslo co a jak, no s takym nastrojom by som to zrejme pochopila skor

jaj - jasne ;) no - ked som ja tento predmet absolvoval pred rokmi, tak som tiez nevedel objektovo programovat. a tiahlo sa to so mnou do konca mojho studia. az na diplomovke som si povedal, ze nieco objektovo spravim, ale uz nepamatam, do akej miery to bolo naozaj objektove ;) takze verim, ze taketo nastroje k tomu pochopeniu oop len pomahaju. sak v podstate - za tym ucelom vznikli ;)
So say we all!

Brand

  • Sr. Member
  • ****
  • Posts: 317
    • View Profile
Re: Objektové programovanie
« Reply #156 on: 16.11.2009, 23:22:41 »
Mr. B!

To PMD v Beansoch hadze ako error viac returnov v metodach... co je na tom ako zle? Mne to pride ako velmi velmi elegantne  :), ten styl, ktory nam to PMD vnucuje je pre nas povinny v tomto nasom zadani? Jasne, ze sa to da obist, ale nie je to take fajne ako dva returny  8)

mirek

  • Sr. Member
  • ****
  • Posts: 448
  • darkman ZX 128k
    • View Profile
    • domovská stránka
Re: Objektové programovanie
« Reply #157 on: 17.11.2009, 00:27:45 »
Mr. B!

To PMD v Beansoch hadze ako error viac returnov v metodach... co je na tom ako zle? Mne to pride ako velmi velmi elegantne  :), ten styl, ktory nam to PMD vnucuje je pre nas povinny v tomto nasom zadani? Jasne, ze sa to da obist, ale nie je to take fajne ako dva returny  8)

a to pouzivas ktory zoznam pravidiel? ten, ktory je predvoleny po nainstalovani? lebo tam to pravidlo je. ale myslim, ze v pravidlach, ktore su zatial vypublikovane, toto pravidlo nie je. hod ockom :-P
So say we all!

Brand

  • Sr. Member
  • ****
  • Posts: 317
    • View Profile
Re: Objektové programovanie
« Reply #158 on: 17.11.2009, 18:16:34 »
dobreee :)

to som si teda nevsimol, ze ruleset nam poskytujete :), no ale dalsi problem, ako nastavit v NetBeans 6.7.1 pre Ubuntu Linux custom ruleset... podla uja Googla by som po nainstalovani pluginu do IDE mal mat v Tools polozku PMD... no a nemam  :P a aj ked dam prehladat cely File System, tak subor ruleset.xml ani nenajde... PMD mi normalne funguje pod klavesovou skratkou Ctrl+Alt+P .

Prosim help :)

mirek

  • Sr. Member
  • ****
  • Posts: 448
  • darkman ZX 128k
    • View Profile
    • domovská stránka
Re: Objektové programovanie
« Reply #159 on: 17.11.2009, 18:55:15 »
dobreee :)

to som si teda nevsimol, ze ruleset nam poskytujete :), no ale dalsi problem, ako nastavit v NetBeans 6.7.1 pre Ubuntu Linux custom ruleset... podla uja Googla by som po nainstalovani pluginu do IDE mal mat v Tools polozku PMD... no a nemam  :P a aj ked dam prehladat cely File System, tak subor ruleset.xml ani nenajde... PMD mi normalne funguje pod klavesovou skratkou Ctrl+Alt+P .

Prosim help :)

ubuntu 9.10, netbeans 6.7.1. polozku pmd v tools mam, takze asi to mas potom blbo nainstalovane.

kazdopadne - tools > miscellanous > PMD > manage rulesets > Add RuleSet
So say we all!

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: Objektové programovanie
« Reply #160 on: 17.11.2009, 22:37:43 »
No snáď bude toto už moj posledný problém pred dokončením. V tride History mám ArrayList<String> do ktorého sa z Parsera posielajú všetky príkazy nejako takto

Kód triedy Parser
Code: [Select]
boolean OK=ret.startsWith(list.get(i).getName());
            if(OK)
            {  History historiaaa = new History();
               historiaaa.addP(ret);

a potom mám 2 metódy void addP a returnArray nejako takto

Kód triedy History
Code: [Select]
public void addP(String ar) {
   prikazyH.add(ar);
   System.out.println(ar);
  
    
}
public void returnArray() {
     if (prikazyH.size() == 0) System.out.println("prazdna");
        else {
    for (int i=0;i<prikazyH.size();i++)
         System.out.println(prikazyH.get(i));
        }

}

cize pridám do listu príkaz z parsera...a následne ho pre istotu aj vypíšem na obrazku - // System.out.println(ar); // toto funguje...

vytvoril som si prikaz historia ktorý ma vypísať históriu a v metóde execute vyzerá takto

Code: [Select]
public GameState execute(Game game) {
       History hi = new History();
       hi.returnArray();
      
      return GameImpl.stav = GameState.PLAYING;
    }

a teraz kde je problém??no ten, že píšem príkazy, a keď dám potom zobraziť históriu tak mi stále vypíše "prázdna"  >:(

takýmto sposobom riešim aj napr. vypísanie inventára, itemy v miestnosti...a funguje...ale toto stále vypíše prázdnu históriu...
« Last Edit: 17.11.2009, 22:40:07 by dEVIANT »
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

mirek

  • Sr. Member
  • ****
  • Posts: 448
  • darkman ZX 128k
    • View Profile
    • domovská stránka
Re: Objektové programovanie
« Reply #161 on: 18.11.2009, 01:26:58 »
vytvoril som si prikaz historia ktorý ma vypísať históriu a v metóde execute vyzerá takto

Code: [Select]
public GameState execute(Game game) {
       History hi = new History();
       hi.returnArray();
     
      return GameImpl.stav = GameState.PLAYING;
    }

a teraz kde je problém??no ten, že píšem príkazy, a keď dám potom zobraziť históriu tak mi stále vypíše "prázdna"  >:(

no - problem je v podstate jasny - ked sa chystas pracovat s historiou, tak ju vzdy vytvoris nanovo. a ked ju vytvoris, tak historia je samozrejme prazdna. ty teda vytvoris objekt historie, vlozis do neho novy prikaz a skoncil si. nasledne po strate referencie sa garbage collector neprple a zametie - zmaze tuto instanciu. a ked teda chces vypisat zoznam, tak opat - vytvoris novu instanciu s prazdnym zoznamom a cudujes sa, ze ten zoznam je prazdny. nuz - on bude ;)

hint - v pokynoch pre vypracovanie je uveden, ze treba historiu vypracovat ako jedinacika.\

este otazka - co je toto za riadok:
Code: [Select]
return GameImpl.stav = GameState.PLAYING;
ta premenna je verejna? lebo ak hej, tak to nie je dobre :-P
So say we all!

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: Objektové programovanie
« Reply #162 on: 18.11.2009, 01:39:12 »
Chápem...zmením vo vlaku do KE :D...dik

A k tomu riadku áno v GameImpl je public static GameState stav...prečo to nieje dobre?  :D hra funguje ako má...
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

tino8

  • Hero Member
  • *****
  • Posts: 1093
    • View Profile
Re: Objektové programovanie
« Reply #163 on: 18.11.2009, 01:49:30 »
myslim ze staci ak ti tu premennu nastavuje GameImpl (aspon ja som to tak robil).
lebo vsetky exekjuty :D ti vracaju GameState, a ak tam napises nieco take: status = xyz.execute(xyz); a v tomto pripade je status privatna premenna.


karamel je cukr co se uz neuzdravi!

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: Objektové programovanie
« Reply #164 on: 18.11.2009, 01:57:22 »
myslim ze staci ak ti tu premennu nastavuje GameImpl (aspon ja som to tak robil).
lebo vsetky exekjuty :D ti vracaju GameState, a ak tam napises nieco take: status = xyz.execute(xyz); a v tomto pripade je status privatna premenna.

to áno...a keď podá mirek solidný dovod ( čo asi určite podá :D ),prečo to nemože byť verejná, tak sa to dá rýchlo zmeniť...
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

piton

  • Hero Member
  • *****
  • Posts: 715
    • View Profile
Re: Objektové programovanie
« Reply #165 on: 18.11.2009, 02:47:15 »
encapsulation ;-) ale ten return vyzera velmi skaredo... asi tam bude aj ina chyba, nepoznam to vase nove rozhranie paradne(ani tvoj kod), ale mam pocit, ze zle nastavujes stav...
"Iba život, ktorý žijeme pre ostatných, stojí za to." - Albert Einstein

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: Objektové programovanie
« Reply #166 on: 18.11.2009, 04:53:00 »
Už to mám. Asi ta história nieje vypracovaná ako jedináčik ( ale to nikde v pokynoch k odovzdavaniu zadania to nieje  ;D takže to nieje povinné ), ale funguje to...čiže už len ošetriť výnimky na Save/Load a bude to All Completed.

No a ešte raz sa pýtam, že prečo ta premenná v GameImpl nemože byť public  ?

Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

mirek

  • Sr. Member
  • ****
  • Posts: 448
  • darkman ZX 128k
    • View Profile
    • domovská stránka
Re: Objektové programovanie
« Reply #167 on: 18.11.2009, 05:33:33 »
Už to mám. Asi ta história nieje vypracovaná ako jedináčik ( ale to nikde v pokynoch k odovzdavaniu zadania to nieje  ;D takže to nieje povinné ),

myslis prvu ulohu v stvrtom kroku v 11. cviceni?

No a ešte raz sa pýtam, že prečo ta premenná v GameImpl nemože byť public  ?

no - tu by som apeloval na prednasky, ale niekolkokrat to prizvukoval aj binas na cvikach (asi k nemu ale nechodis). ak odovzdas takto zadanie, tak ti ho binas nevezme. nadava sa tomu encapsulation, ako piton tiez podotkol.
So say we all!

psicho

  • VIP
  • Hero Member
  • *****
  • Posts: 3173
  • Markus[pSicho]Fesi
    • View Profile
    • codemazing
Re: Objektové programovanie
« Reply #168 on: 18.11.2009, 17:01:26 »
encapsulation je sice fajn, ale aky vyznam ma ked celu aplikaciu pise jeden clovek ? :D toje ako keby som si dal zamky na kazde dvere v vlastnom dome v ktorom okrem mna nikto nebyva a malbysom ich stale zamknute a keby som sa xel z spalne dostat do kuchine tamito trvalo poldna bo X dveri by som musel odomkinat a zamikat :P
read my blog> www.codemazing.com <read my blog

piton

  • Hero Member
  • *****
  • Posts: 715
    • View Profile
Re: Objektové programovanie
« Reply #169 on: 18.11.2009, 17:28:57 »
no hej, ale tu sa mas naucit objektovo orientovanemu pristupu...

// pri takom jednoduchom zadani ani rozhrania nemaju zmysel...
"Iba život, ktorý žijeme pre ostatných, stojí za to." - Albert Einstein

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: Objektové programovanie
« Reply #170 on: 18.11.2009, 17:46:50 »
myslis prvu ulohu v stvrtom kroku v 11. cviceni?

Done. Je to s tým Singletonom aj ľahšie a prehľadnejšie...

no - tu by som apeloval na prednasky, ale niekolkokrat to prizvukoval aj binas na cvikach (asi k nemu ale nechodis). ak odovzdas takto zadanie, tak ti ho binas nevezme. nadava sa tomu encapsulation, ako piton tiez podotkol.

Done.

encapsulation je sice fajn, ale aky vyznam ma ked celu aplikaciu pise jeden clovek ? :D toje ako keby som si dal zamky na kazde dvere v vlastnom dome v ktorom okrem mna nikto nebyva a malbysom ich stale zamknute a keby som sa xel z spalne dostat do kuchine tamito trvalo poldna bo X dveri by som musel odomkinat a zamikat :P

Asi nás chcú naučiť správnych návykom už na začiatku...
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

leniocka

  • Full Member
  • ***
  • Posts: 192
    • View Profile
Re: Objektové programovanie
« Reply #171 on: 19.11.2009, 05:10:22 »
encapsulation je sice fajn, ale aky vyznam ma ked celu aplikaciu pise jeden clovek ? :D toje ako keby som si dal zamky na kazde dvere v vlastnom dome v ktorom okrem mna nikto nebyva a malbysom ich stale zamknute a keby som sa xel z spalne dostat do kuchine tamito trvalo poldna bo X dveri by som musel odomkinat a zamikat :P

v takom setteri vies osetrit aj pripustne hodnoty atributu a nemoze sa ti stat, ze tam das daco zle koli priamemu pristupu ;)

psicho

  • VIP
  • Hero Member
  • *****
  • Posts: 3173
  • Markus[pSicho]Fesi
    • View Profile
    • codemazing
Re: Objektové programovanie
« Reply #172 on: 19.11.2009, 15:40:05 »
encapsulation je sice fajn, ale aky vyznam ma ked celu aplikaciu pise jeden clovek ? :D toje ako keby som si dal zamky na kazde dvere v vlastnom dome v ktorom okrem mna nikto nebyva a malbysom ich stale zamknute a keby som sa xel z spalne dostat do kuchine tamito trvalo poldna bo X dveri by som musel odomkinat a zamikat :P

v takom setteri vies osetrit aj pripustne hodnoty atributu a nemoze sa ti stat, ze tam das daco zle koli priamemu pristupu ;)

ale vazne ? toto si snad robis srandu :( a ja taketo veci preco neviem ? :( jaasom taky hlupucky...stale som vravel mamicke ze radsej som mal ist za zeriavnika do Ussteel


read my blog> www.codemazing.com <read my blog

mirek

  • Sr. Member
  • ****
  • Posts: 448
  • darkman ZX 128k
    • View Profile
    • domovská stránka
Re: Objektové programovanie
« Reply #173 on: 19.11.2009, 20:15:34 »
encapsulation je sice fajn, ale aky vyznam ma ked celu aplikaciu pise jeden clovek ? :D toje ako keby som si dal zamky na kazde dvere v vlastnom dome v ktorom okrem mna nikto nebyva a malbysom ich stale zamknute a keby som sa xel z spalne dostat do kuchine tamito trvalo poldna bo X dveri by som musel odomkinat a zamikat :P

o tom ale predsa encapsulation nehovori. ona nehovori o stave objektu - o stave jeho clenskych premennych, ale o pristupe k nim. v tvojom kode nenapises viac riadkov, ked napises:
Code: [Select]
dvere1.odomknute = true;

oproti

Code: [Select]
dvere1.odomkni();

samozrejme - napises akurat viac metod, aby tato funkcionalita bola dostupna, ale nezaberie ti potom "odomykanie bytu" cely den. nuz - blby kontrapriklad si vybral :-P

a ty kodis profesionalne, nie? a to vo vasej firme pisete takto triedy? ze vsetko je vsade viditelne? drzite sa len principu - hlavne, ze to funguje?
So say we all!

mirek

  • Sr. Member
  • ****
  • Posts: 448
  • darkman ZX 128k
    • View Profile
    • domovská stránka
Re: Objektové programovanie
« Reply #174 on: 19.11.2009, 20:16:05 »
ale vazne ? toto si snad robis srandu :( a ja taketo veci preco neviem ? :( jaasom taky hlupucky...stale som vravel mamicke ze radsej som mal ist za zeriavnika do Ussteel

isto si mal cvika s binasom...
So say we all!