Mam pytanie #java #programowanie Jeżeli posiadam klasę (rozpocznijGre), która ma dwie podklasy (Gracz oraz Gra) niezależne od siebie, to czy mogę w jakiś sposób edytować zmienne w tych podklasach między sobą? Chciałbym, żeby ekwipunek gracza (składowe) był edytowany przez wyniki metod w klasie Gra.
@kwiat_2_0: zacznij od tego, żeby edytować te klasy i nazwać je jak człowiek czyli po angielsku. Nie ucz się złych nawyków - masz stosować jeżyk angielski i kropka!
Postawiłeś tak pytanie że ciężko zgadnąć o co chodzi. W ciemno odpowiem - tak, da się. W zasadzie prawie wszystko się da. Czy będzie to jakkolwiek ładne, eleganckie, dobre rozwiązanie? NIE
Jeśli masz Gracza i Grę, to powinna istnieć klasa która zajmuje się nadzorowaniem tego, i to ona powinna manipulować danymi Gracza i Gry.
@kwiat_2_0: masz klasy wewnętrzne czy dziedziczysz w Graczu i Grze z rozpocznijgre czy jak? Termin "podklasa" nie istnieje w Javie. Gracz gracz = new Gracz(); gracz.metodaWGraczu(); poprzez tworzenie obiektów masz dostęp do tej klasy.
@kwiat_2_0: troche ciezko sie polapac. W kazdej klasie zaplanuj API do tej klasy, czyli publiczne metody, ktore pozwalaja na interakcje z nia. Skoro mowisz o ekwipunku gracza, wiec pewnie jakiegos konkretnego, czyli pewnie konkretnej instancji danej klasy. Wtedy problemem jest dostep do referencji do tej klasy. Mozna zrobic to na wiele sposobow, mozesz zaczac po prostu od trzymania listy graczy (referencji do klas graczy), w tej 'gornej', czymkolwiek ona nie
@kwiat_2_0: Da się na kilka sposobów. Najbardziej brzydki (ale działający), to jakieś zmienne globalne. Wzorce projektowe to temat który teraz powinieneś obczaić, zrozumieć, a potem wykorzystać. Jak potrzebujesz elegancko i naprędce, przekazuj dane gracza do jakieś klasy nadrzędnej, która to zaś przekazywała by je do innej klasy potrzebującej z tych danych skorzystać.
Nawet jeśli miało by to tworzyć małe problemy, kod ma być po angielsku!
@EstradaOrNada: Bóldupienie. Jakie ma znaczenie język angielski do skuteczności programowania? Jeśli pisze dla siebie i pisze rozumie to i Klingoński mógł zastosować.
@eovenn: taki, że OP się chyba uczy i robi to źle - nabiera złych nawyków i przywyka do nich. Równie dobrze może zacząć stosować goto bo przecież pisze dla siebie.
@Vetinari: @EstradaOrNada: @martinuz: @Szinek: @fakeReal: @mihaubiauek: OK. Dzięki za podpowiedzi. Tworzę grę Wędkarz(R) Moim celem jest powtórzenie sobie zdobytej wiedzy, a nie widzę lepszego rozwiązania niż napisanie czegoś bardziej rozbudowanego, co będzie niosło w raz z kolejnymi etapami nowe problemy. Jestem totalnym Januszem, a to mój zamysł. Start jest klasą która posiada main i to ona łączy pozostałe klasy - wywołuje ich metody, między
@kwiat_2_0: Zanim zaczniesz: 1) Ogarnij jak to się powinno robić 2) Poczytaj o wzorcach 3) Nie, jeśli tak zaprojektujesz grę to nie rozwiniesz jej nigdy. Po tygodniu będzie nadawała się do śmieci 4) Poczytaj o wzorcach 5) Przemyśl dobrze architekturę aplikacji. Pomyśl o tym jakich klas, struktur danych
Jestem na etapie ArrayList 2/5 książki - czy naprawdę już pownienem łapać za wzorce nie znając podstaw? Probram nie musi dzialać w 100% poprawnie ważne aby zastosować w nim nową wiedzę i szybko utrwalić. Wiem, że pewnie wyjdzie z niego jeden wielki bałagan.... edytując coś co chwilę, ale czy nie uczymy sie na błędach?
Eh przegapiłem info, że znowu była podwyżka minimalnej. I znowu zarabiam tylko 500zł więcej od sprzątaczki. 10 lat nabijania doświadczenia, 10 lat pracy jako grafik z czego 6 lat wypruwania sobie żył w agencji reklamowej i wszystko c---a warte.
Jeżeli posiadam klasę (rozpocznijGre), która ma dwie podklasy (Gracz oraz Gra) niezależne od siebie, to czy mogę w jakiś sposób edytować zmienne w tych podklasach między sobą? Chciałbym, żeby ekwipunek gracza (składowe) był edytowany przez wyniki metod w klasie Gra.
#januszeprogramowania #programujzwykopem
NIE
Jeśli masz Gracza i Grę, to powinna istnieć klasa która zajmuje się nadzorowaniem tego, i to ona powinna manipulować danymi Gracza i Gry.
[edit]
Gracz gracz = new Gracz();
gracz.metodaWGraczu();
poprzez tworzenie obiektów masz dostęp do tej klasy.
Wzorce projektowe to temat który teraz powinieneś obczaić, zrozumieć, a potem wykorzystać.
Jak potrzebujesz elegancko i naprędce, przekazuj dane gracza do jakieś klasy nadrzędnej, która to zaś przekazywała by je do innej klasy potrzebującej z tych danych skorzystać.
Nawet jeśli miało by to tworzyć małe problemy, kod ma być po angielsku!
OK. Dzięki za podpowiedzi.
Tworzę grę Wędkarz(R)
Moim celem jest powtórzenie sobie zdobytej wiedzy, a nie widzę lepszego rozwiązania niż napisanie czegoś bardziej rozbudowanego, co będzie niosło w raz z kolejnymi etapami nowe problemy.
Jestem totalnym Januszem, a to mój zamysł.
Start jest klasą która posiada main i to ona łączy pozostałe klasy - wywołuje ich metody, między
1) Ogarnij jak to się powinno robić
2) Poczytaj o wzorcach
3) Nie, jeśli tak zaprojektujesz grę to nie rozwiniesz jej nigdy. Po tygodniu będzie nadawała się do śmieci
4) Poczytaj o wzorcach
5) Przemyśl dobrze architekturę aplikacji. Pomyśl o tym jakich klas, struktur danych
Probram nie musi dzialać w 100% poprawnie ważne aby zastosować w nim nową wiedzę i szybko utrwalić.
Wiem, że pewnie wyjdzie z niego jeden wielki bałagan.... edytując coś co chwilę, ale czy nie uczymy sie na błędach?
Powrócę do dyskusji gdy będę wiedział więcej, lub znał jakieś lepsze rozwiazania. dzieki