Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet megcsinálni azt,...

Hogyan lehet megcsinálni azt, hogy legyen egy 2D tömbünk vagy listánk de mindegyik elem egy osztály? Java

Figyelt kérdés

Tehát tegyük fel van 3 osztályunk:

-Allat()

-Ember()

-Kocsi()


És ezt a 3 classt rakjuk randomizálva a tömb minden elemére?


2021. ápr. 9. 18:14
1 2
 1/17 A kérdező kommentje:
Osztály helyett példányra gondoltam, bocsánat. :D
2021. ápr. 9. 18:16
 2/17 anonim ***** válasza:
57%
Ha a három osztályt összefogod egy absztrakt osztállyal, olyan típusú lehet a 2D tömb, így mindegy, hogy a 3 közül melyik példánya, bele tudod tenni a tömbbe.
2021. ápr. 9. 18:22
Hasznos számodra ez a válasz?
 3/17 A kérdező kommentje:

De hogyan fogom össze? Implementálni lehetne több interfészt de nekem classok kellenek és többszörös öröklődés pedig nincs és igazából nem is kéne őket örökölni.

Biztos igazat mondasz csak nem teljesen értem. :D

2021. ápr. 9. 18:28
 4/17 anonim ***** válasza:
57%
Akkor ezek szerint van már egy ősük. Ha az közös ős, akkor olyan típusú legyen a tömb, még ha az a közös ős feljebb is van a hierarchiában. Ha nem, akkor kontár megoldás lehet, hogy Object típusú a tömb, abba bármit betehetsz. De ezt csak akkor csináld ha sehogy máshogy nem tudod megoldani.
2021. ápr. 9. 18:40
Hasznos számodra ez a válasz?
 5/17 anonim ***** válasza:
Mit mondtál, mi is lenne ezzel a célod...?
2021. ápr. 9. 18:48
Hasznos számodra ez a válasz?
 6/17 A kérdező kommentje:
Egy 2D pályát szeretnék ezzel vizualizálni. Szerintem Object típusú lesz a tömb, de ezzel milyen problémák merülhetnek fel?
2021. ápr. 9. 18:55
 7/17 anonim ***** válasza:
66%
Tehát pályaelemeket akarsz. Meg is van a közös interface. Az öröklődést meg most felejtsd el.
2021. ápr. 9. 18:58
Hasznos számodra ez a válasz?
 8/17 A kérdező kommentje:
Igen de ezeknek a pályaelemekkel kommunikálni akarok és tartalmazniuk kell adattagokat és metódusokat.
2021. ápr. 9. 19:03
 9/17 anonim ***** válasza:
Ok, és?
2021. ápr. 9. 19:05
Hasznos számodra ez a válasz?
 10/17 anonim ***** válasza:
38%

Csinálj egy ILevelObject interfacet, ami tartalmaz minden általános pályaelem metódust amire szükséged lehet, ebből meg tudsz listát csinálni és el is érsz mindent amire pályaelemként szükség lehet. Interface azért létezik, hogy a többszörös szülő problémát megoldja, épp ilyen esetekre találták ki, amikor egymástól teljesen független kódrészekkel akarod alapvetően ugyanazt, de nem feltétlen ugyanúgy megcsinálni. Pl van egy ITravel intefaceed, ami egy nagy térképen két pont között utaztat, ezt implementálhatod buszhoz, vonathoz, autóhoz, gyalog - ha gyalog mész x százalék esélye van hogy feltörik a lábad, vagy feldarabol a sorozatgyilkos, vagy a vonat kisiklik, és így tovább. Vagy valamivel gyakoribb példa, hogy pl mi történjen ha rákattintasz valamire, a kattintásokat figyeled azokra az osztályokra amik implementálják az IClickable interface t, de innentől valószínűleg teljesen egyedi a kód ahogy ezt lekezeled.

Ha meg mindegyiknél elemednél ugyanazt akarod, mint pl pozíciót, forgatást, vagy tudom és mi kell még, lényeg hogy nem változik a megvalósítás, akkor ezt írhatod az ősosztályba(vagy még jobb, ha minden pályán lévő objektum őse egy Transform osztály).

2021. ápr. 9. 19:19
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!