Mit Methode auf Objekt zugreifen

cecil13

Grünschnabel
Hallo,
ich versuche mich gerade an folgender Übung: https://wiki.freitagsrunde.org/Javakurs/Übungsaufgaben/Rennschnecke

Mein Code sieht bisher so aus:
Code:
package eins;
import Prog1Tools.IOTools;
import java.util.Random;
public class Rennschnecke {
    
    private String name;
    private int maximalgeschwindigkeit;
    private int weg;
    
    public Rennschnecke(){
        this.name = IOTools.readString("Welchen Name hat die Schnecke?");
        this.maximalgeschwindigkeit = IOTools.readInt("Welche Maximalgeschwindigkeit hat die Schnecke");
        this.weg = 0;
    }
    
    public static void erstelle(int wert){
        Rennschnecke[] s = new Rennschnecke[wert];
        for(int i=0; i<wert; i++){
            s[i] = new Rennschnecke();          
        }
    }

    
    public static void krieche(int wert){
    Random rand = new Random(); 
    int random = rand.nextInt(s[wert].maximalgeschwindigkeit);
    s[wert].weg+=random;    
        
    }     
}

Allerding wird mir in der Methode krieche() angezeigt, dass 's' nicht gefunden werden kann. Kann mir jem. weiterhelfen?

Vielen Dank im Voraus,
cecil13
 
die variable s ist in krieche nicht definiert.
in erstelle wird zwar die variable s erstellt aber die variable ist nur innerhalb der Methode bekannt nicht ausserhalb.
merke: variablen sind nur dort im block bekannt wo sie definiert werden.
siehe schleife:
die variable i die in der for schleife definiert wird ist nur in der schleife bekannt nicht ausserhalb der schleife.
die variable s gehört in den class teil wie z.b weg


wenn ich mir die weiteren aufgaben so ansehe: überlege doch mal ob erstelle "so" sinnvoll ist :)

irgenwann brauchste sowas:
Java:
Rennschnecke schnecke = new Rennschnecke("Weinberg","Egon",4);
// und das
schnecke.krieche();
// und das auch
int weg = schnecke.gekrochen();
//
System.out.println(schnecke.toString());
// sollte sowas ausgeben= Art Weinberg Name Egon MaxSpeed 4
 
Zuletzt bearbeitet:
ich finde bei der Aufgabenbeschreibung fehlt:
Erstellen sie ein getter für den zurück gelegten Weg
 
Zurück