Ganz dringendes Problem non static method

Hab ein Problem mit Lejos (Java basierende programmiersprache von Lego), mein Problem ist aber Java abhängig. (nicht wundern wegen den komischen Methodennamen).

also mein Problem ist ganz am Ende vom Programm in der 10 und 14 Linie VON HINTEN, da sind 2 Methoden durchlauf() und justieren(), der Compiler bringt folgende Fehlermeldung:

non-static method justieren() cannot be referenced from a static context
non-static method durchlauf() cannot be referenced from a static context

Kann mir jemand helfen evtl. mein Programm verbessern; das Programm ist echt wichtig bitte bitte helft mir.

Hier jetzt aber das Programm:

import josx.platform.rcx.*; // Bibliothek einbinden

public class Robo2
{

// ********************
// * *
// * Unterprogramme *
// * *
// ********************

// *********************************************
// * Geschwindigkeiten der Motoren festlegen *
// *********************************************

// Geschwindigkeit Maximal
int max = 7;

// Geschwindigkeit Minimal
int min = 3;

// Geschwindigkeit Auslösen
int arm = 5;

// *******************************
// * Werte IR Sensoren ermitteln *
// *******************************

int border = 0; // Grenzwert Linie/Untergrund wird später ermittelt

// Lese Werte für Linie aus
int getEyeValueLinks()
{
return Sensor.S1.readRawValue();
}

int getEyeValueRechts()
{
return Sensor.S3.readRawValue();
}

// Werte für die Linien-/Bodenerkennung ermitteln:
private void justieren()
{
// Programm ermittelt Helligkeitswert Untergrund wenn „View“ gedrückt
TextLCD.print(„floor“); sleep(500);
TextLCD.print(„while“); sleep(500);
TextLCD.print(„VIEW“);
Sound.beep();
while(!Button.VIEW.isPressed());
int floor=0;
while (Button.VIEW.isPressed())
floor = Math.max(getEyeValueLinks(),floor);
// Helligkeitswert der Linie ermitteln wenn „View“ gedrückt
TextLCD.print(„line“); sleep(500);
TextLCD.print(„while“); sleep(500);
TextLCD.print(„VIEW“);
Sound.beep();
while(!Button.VIEW.isPressed());
int line = floor;
while (Button.VIEW.isPressed())
line = Math.max(getEyeValueLinks(),line);
// Grenzwert zur Unterscheidung errechnen
border = (4*floor + line) / 5;
LCD.showNumber(border);
Sound.beepSequence();
sleep(1000);
}

// **********************************
// * Position zur Linie ermitteln *
// **********************************

// noch auf der Linie?
boolean online()
{
boolean on = (getEyeValueLinks() > border) && (getEyeValueRechts() > border);
return on;
}

// Links neben der Linie?
boolean linksOff()
{
boolean linksOff = getEyeValueLinks()

Hallo,

unter Java gibt es statische (Klassenmethoden) und nicht-statische Methoden. Statische Methoden kann man einfach so ausführen, für die anderen benötigt man ein Objekt.

Sieht eigentlich sehr nach statischen Zugriffen aus. Versuch einfach mal das Schlüsselwort static vor die Methode zu setzen, dann müsste es klappen.
Wenn das nicht geht, musst du zuérst ein Objekt erzeugen und von diesem Objekt die Methode aufrufen.

Gruß

Peter

Hab ein Problem mit Lejos (Java basierende programmiersprache
von Lego), mein Problem ist aber Java abhängig. (nicht wundern
wegen den komischen Methodennamen).

also mein Problem ist ganz am Ende vom Programm in der 10 und
14 Linie VON HINTEN, da sind 2 Methoden durchlauf() und
justieren(), der Compiler bringt folgende Fehlermeldung:

non-static method justieren() cannot be referenced from a
static context
non-static method durchlauf() cannot be referenced from a
static context

Kann mir jemand helfen evtl. mein Programm verbessern; das
Programm ist echt wichtig bitte bitte helft mir.

Hier jetzt aber das Programm:

Einfach alles statisch zu machen ist fast immer der falsche Weg.

Ändere die main-Methode so:

 Robo2 robo2 = new Robo2 ();
 robo2.justieren ();
 try
 {
 robo2.Durchlauf ();

Lies in Büchern mehr zum gezielten Einsetzen des Schlüsselwortes ‚static‘.

Umlaute in Methodennamen sind übrigens schlecht.
Und Methodennamen werden klein geschrieben.
Und nutze das pre-Tag, um Code formatiert zu posten.

Was kostet denn so ein Lego-Kit? :smile:

Vielen Dank ihr habt mir wirklich sehr geholfen.
Der Mindstorms Kasten kostet glaub so um die 230€ bin mir aber nicht sicher da er nicht mir gehört