Wpis z mikrobloga

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.

#januszeprogramowania #programujzwykopem
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

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.

[edit]
  • Odpowiedz
@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.
  • Odpowiedz
@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
  • Odpowiedz
@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!
  • Odpowiedz
@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
  • Odpowiedz
@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
  • Odpowiedz
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?
  • Odpowiedz