# Java Greenfoot Klassen Problem



## jice (3. Mrz 2011)

Guten Abend,

ich bin gerade neu hier im Forum und hoffe das ich hier richtig bin.
Ich arbeite mit Greenfoot.

Ich habe folgende Klassen.
Zum einen habe ich die Klasse Object, die von der mitgelieferten Klasse Actor erbt.

```
public class Object  extends Actor
{
    private static boolean moveable;

    public Object(boolean moveBool) {
        moveable = moveBool;
    }

    public void act() 
    {
    }
    
    public static void setMoveable(boolean newBool) {
        moveable = newBool;
    }
    
    public static boolean getMoveable() {
        return moveable;
    }

    public static boolean isObject(int x, int y, World myWorld) {
        List list = myWorld.getObjectsAt(x, y, Object.class);
        if(list.isEmpty()) {
            return false;
        } else {
            return true;
        }
    }

    protected static Object getObject(int x, int y, World myWorld) {
        List list = myWorld.getObjectsAt(x, y, Object.class);
        Object obj = (Object) list.get(0);
        return obj;
    }

    public static void moveObjectAuto(int x1, int y1, int x2, int y2, int x3, int y3, World myWorld) {
       if (isObject(x2, y2, myWorld) == true) {
           Object obj = getObject(x2, y2, myWorld);
           // Hier ist der "Fehler"
           if (obj.getMoveable() == true) {
               // weiterer Code
            }
        } else {
            // bewege Character
        }
    }
}
```

und dann habe ich noch zwei Klassen die von der Object-Klasse erben:


```
public class Brick extends Object
{
    public Brick() {
        super(false);
    }
}
```


```
public class Rock extends Object
{
    public Brick() {
        super(true);
    }
}
```

Jetzt habe ich folgendes Problem in der moveObjectAuto-Methode in der Object-Klasse.
Ich hole das Objekt, welches an den x- und y-Koordinaten ist.
Da ich aber ja nicht genau weiß, welches Object einer Klasse da ist habe ich einfach den Datentyp Object benommen.
Es wird auch immer das richtige Objekt angezeigt. Das funktioniert also schon gut.
Das sehe ich halt daran, dass ich mir in der Console folgendes ausgeben lassen habe:
Brick@1fbfbf9
Rock@1be996d

So und jetzt möchte ich halt auf die getMoveable-Methode zugreifen, um zu gucken ob ich das Objekt verschieben kann oder nicht.
Ich bekomme aber immer ein false.

Ich bin mit meinem Latein am Ende und weiß nicht was ich noch machen soll.

Ich hoffe hier kennt sich jemand mit Greenfoot aus und kann mir einen kleinen Denkanstoß geben.


----------



## Final_Striker (3. Mrz 2011)

lesen: http://www.java-forum.org/stichwort-static/1353-bedeutet-static.html

Außerdem ist Object eine ganz schlechte Wahl für einen Klassennamen.


----------



## jice (3. Mrz 2011)

Vielen Dank!
Genau diesen Denkanstoß habe ich gebraucht.

Ich werde die Klasse auch noch mal umbennen.


----------

