Hey,
Voor school hebben we een opdracht waarbij we in java (m.b.v. bluej) een soort zeeslag moeten maken. In een klasse "ships" maak ik boten aan, elk bestaande uit 3 positie objecten (boten bestaan steeds uit 3 vakjes, posities, aan elkaar, horizontaal of verticaal). In een klasse "Shoot" controleer ik of een bepaalde gekozen positie (de positie waarop geschoten wordt) gelijk is aan een positie van een stukje boot. (als dat zo is, is het raak). De lijst met positie objecten wordt in de klasse ships aangemaakt met een while lus. Afhankelijk van het aantal boten, is deze lijst (ArrayList btw) dus groter of kleiner. Nu heb ik echter deze lijst ook nodig in mijn klasse "Shoot" om dus die hitdetectie te kunnen uitvoeren. Echter als ik een methode schrijf in ship die de lijst (met de positie objectenà returned, en deze methode oproep in "Shoot", krijg ik de melding
non-static method cannot be referenced from a static context.
Nu weet ik wel wat dit betekend ongeveer, die lijst met positieobjecten is niet statisch omdat die in een while lus wordt aangemaakt en als ik dezelfde lijst in "shoot" wil gebruiken, moet deze wel statisch zijn. Ik heb al zitte prutsen met "public static" methodes etc, maar het mocht niet baten. Via google kom ik er ook niet zo 1, 2, 3 uit. Het is trouwens nog maar sinds kort dat we met java werken.
Weet er hier iemand een eenvoudige work around?
verhaal in het kort:
-in klasse "ships" wordt een lijst d.m.v. een while lus aangemaakt,
-deze lijst wil ik ook kunnen gebruiken in klasse "shoot", maar dan krijg ik dus bovenstaande error.
EDIT:
oh ja, via google leek het meest bruikbare advies om een instantie aan te maken van die klasse en het zo te gebruiken, maar dat is hier niet echt handig (alles behalve zelfs).
BVD
Voor school hebben we een opdracht waarbij we in java (m.b.v. bluej) een soort zeeslag moeten maken. In een klasse "ships" maak ik boten aan, elk bestaande uit 3 positie objecten (boten bestaan steeds uit 3 vakjes, posities, aan elkaar, horizontaal of verticaal). In een klasse "Shoot" controleer ik of een bepaalde gekozen positie (de positie waarop geschoten wordt) gelijk is aan een positie van een stukje boot. (als dat zo is, is het raak). De lijst met positie objecten wordt in de klasse ships aangemaakt met een while lus. Afhankelijk van het aantal boten, is deze lijst (ArrayList btw) dus groter of kleiner. Nu heb ik echter deze lijst ook nodig in mijn klasse "Shoot" om dus die hitdetectie te kunnen uitvoeren. Echter als ik een methode schrijf in ship die de lijst (met de positie objectenà returned, en deze methode oproep in "Shoot", krijg ik de melding
non-static method cannot be referenced from a static context.
Nu weet ik wel wat dit betekend ongeveer, die lijst met positieobjecten is niet statisch omdat die in een while lus wordt aangemaakt en als ik dezelfde lijst in "shoot" wil gebruiken, moet deze wel statisch zijn. Ik heb al zitte prutsen met "public static" methodes etc, maar het mocht niet baten. Via google kom ik er ook niet zo 1, 2, 3 uit. Het is trouwens nog maar sinds kort dat we met java werken.
Weet er hier iemand een eenvoudige work around?
verhaal in het kort:
-in klasse "ships" wordt een lijst d.m.v. een while lus aangemaakt,
-deze lijst wil ik ook kunnen gebruiken in klasse "shoot", maar dan krijg ik dus bovenstaande error.
EDIT:
oh ja, via google leek het meest bruikbare advies om een instantie aan te maken van die klasse en het zo te gebruiken, maar dat is hier niet echt handig (alles behalve zelfs).
BVD
[ Voor 5% gewijzigd door Verwijderd op 10-03-2009 22:06 ]