3.1k Aufrufe
Gefragt in Anwendungen(Java,C++...) von
Hallo,
ich arbeite zur Zeit mit Greenfoot und dem Szenario Little Crab.
jetzt soll ich der Krabbe ein Schutzschild verpassen. Das habe ich geschafft. Wenn ich s Drücke, bekommt die Krabbe 5 sek ein Schutzschild.
Wenn die Krabbe (Klasse Crab) allerdings durch das Schutzschild geschützt ist, soll die Klasse Lobster die Krabbe nicht fressen können, das habe ich folgendermaßen probiert zu realisieren:
in der Klasse Crab:

public boolean schutzSchild

if(Greenfoot.isKeyDown("s"))
schutzSchild=true;

-->da steht noch mehr, aber das hab ich mal weggelassen.

Jetzt habe ich in der Klasse Lobster geschrieben:

if(canSee(Crab.class) && !schutzSchild)
eat(Crab.class);

doch ich bekomm nur einen error, dass die Variable unbekannt ist.

Jetzt meine Frage:
wie bekomm ich den Wert der Variable schutzSchild von der Klasse Crab in die Klasse Lobster?
mit freundlichen Grüßen

2 Antworten

0 Punkte
Beantwortet von Experte (3.2k Punkte)
Wenn ich dich richtig verstanden hab, sollte es gehen, indem du auf die publike Membervariable von Crab zugreifst.

if(canSee(Crab.class) && !Crab.schutzSchild)
eat(Crab.class);


btw. ich bin mir allerdings nicht ganz sicher, was jetzt klassendefinition und was instanz ist... da drücktest du dich etwas wirr aus.

Ele
0 Punkte
Beantwortet von
Ja, so dachte ich mir das auch (mal abgesehen von dem Crab. davor).
Ich habe in der Klasse Crab stehen:
public boolean schutzSchild;


und in der Klasse Lobster:
if(canSee(Crab.class) && !Crab.schutzSchild)
blah

der Compiler sagt mir dann aber:

non-static variable schutzSchild cannot be referenced from a static context.

mit freundlichen Grüßen
...