Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context

Javabeginner73

Neues Mitglied
allo zusammen,

ich versuche mich seit kurzem mit der Javaprogrammierung, bin ganz am Anfang. Ich habe folgendes Problem. ich möchte gerne, dass mir der Text "Gleichstand, bitte noch einmal" ausgegeben wird. Ich bekomme aber die FEhlermeldung angezeigt und weiß nicht, was ich machen soll.

Code:
Stein_Papier_Schere.java:7: error: non-static variable player0 cannot be referenced from a static context
   System.out.println(Play.player0.getPlay());
                          ^
1 error

Kann mir jemand helfen?

Main:

Java:
public class Stein_Papier_Schere
{

  public static void main(String[] args)
    {

    System.out.println(Play.player0.getPlay());

  }
}
Klasse:

Java:
public class Play
{
  //Attribut
  private String value;
  //Konstruktor
  public Play (String value)
  {
  this.value=value;
  }
  // Getter und Setter
  public String getPlay()
  {
    this.value=value;
    return value;
  }
  public void setPlay(String value)
  {
    this.value=value;
  }
  Play player0=new Play("test");
  Play player1=new Play("Schere");
  Play player2=new Play("Schere");

public String playmethode()
  {
  if (player1.getPlay()==player2.getPlay())
    {
      player0.setPlay("Gleichstand, bitte noch einmal");
    }
    return player0.getPlay();
  }

}
 
Zuletzt bearbeitet von einem Moderator:

mihe7

Top Contributor
Hi, vorab: bitte Code immer in Code-Tags posten (die drei Punkte neben dem Smiley -> Code -> Java auswählen und Text inkl. Einrückungen in Textfeld einfügen).

Zur Fehlermeldung: Eine Klasse ist dazu da, Objekte zu erzeugen. Du brauchst also erstmal ein Objekt von Play, dann kannst Du auf dessen Attribute und Methoden zugreifen.
 
K

kneitzel

Gast
Und die Logik würde ich auch einmal überprüpfen!

Du hast eine Klasse Play. Diese enthält drei Spieler, die alle auch vom Typ Play sind und bei Erstellung eines Objekts werden die direkt initialisiert.

Also etwas vereinfacht steht da für den Computer folgende Anleitung:
a) Erstelle ein Play mit Namen player0 und weise dem ein Play("test") zu.
b) Erstelle ein Play mit Namen player1 und ....
c) ....

Also was passiert nun wenn du den Computer aufforderst, da was zu erzeugen:
1) Er erstellt das leere Objekt um dann (nach Anleitung) player0 zu füllen ...
2) um player0 zu füllen erzeugt er ein leeres Objekt um dann (nach Anleitung) dessen player0 zu füllen
3) um player0 zu füllen erzeugt er ein leeres Objekt um dann (nach Anleitung) dessen player0 zu füllen
...
Und das läuft dann so lange, bis der Computer sagt: "Hey Du hast einen Vogel - ich habe kein Bock mehr". Das drückt er nur etwas anders aus - in der Regel als Stack Overflow :)

Also sowas vermeidet man am Besten, dass man sich genau überlegt, was für Objekte es gibt. Und wenn eine Instanzvariable irgendwo drin ist, dann kann man klar sagen: "Hat ein": Ein Flugzeug hat ein Höhenmesser.

Aber hat ein Spieler einen Spieler in sich drin? Eher nicht. Also gibt es da doch andere Objekte: Es gibt von mir aus das Spiel selbst. Das hat dann mehrere Spieler.
 

Nobod y

Neues Mitglied
Hier wurden ja schon ein paar Probleme bei der generellen Umsetzung des Programms angesprochen, aber zu deiner Frage wegen der Fehlermeldung:
Die bedeutet, dass du in einer "static" Methode (hier der main-Methode), versuchst, eine Variable, die nicht "static" ist (hier player0) zu verwenden. Das kannst du beheben indem du (nachdem du das Programm mithilfe der anderen Ratschläge hier funktionstüchtig gemacht hast) player0 bei der Erstellung "static" machst. Dazu schreibst du davor einfach static
 

mrBrown

Super-Moderator
Mitarbeiter
Das kannst du beheben indem du (nachdem du das Programm mithilfe der anderen Ratschläge hier funktionstüchtig gemacht hast) player0 bei der Erstellung "static" machst. Dazu schreibst du davor einfach static
Das ist allerdings genau der Weg, der nicht empfehlenswert ist. static sollten erstmal nur die main und (unveränderliche) Konstanten sein, irgendwelche Objekte aber grad nicht.

Wenn sie das ganze mit den anderen Ratschlägen hier funktionstüchtig gemacht hat, wird auch kein statisches player0 mehr gebraucht ;)
Einmal, weil sie dann ein Objekt hat, mit dem gearbeitet werden kann, und zusätzlich weil es das Feld player0 dann nicht mehr gibt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Fehlermeldung Unklar, google hilft auch nicht weiter Java Basics - Anfänger-Themen 2
A Fehlermeldung Unklar. Java Basics - Anfänger-Themen 1
S Fehlermeldung bei switch unklar Java Basics - Anfänger-Themen 19
Ronny123 Erste Schritte Fehlermeldung Java Basics - Anfänger-Themen 1
F Fehlermeldung in Eclipse Java Basics - Anfänger-Themen 13
AllBlack Fehlermeldung Java Basics - Anfänger-Themen 19
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
J Fehlermeldung unverständlich für Jakarta Java Basics - Anfänger-Themen 17
Ostkreuz Fehlermeldung Java Basics - Anfänger-Themen 1
_so_far_away_ Fehlermeldung "Index 2 out of bounds for length 2" Java Basics - Anfänger-Themen 7
W Texteingabe - Bedeutung Fehlermeldung, Lösung? Java Basics - Anfänger-Themen 18
krgewb Fehlermeldung in web.xml Java Basics - Anfänger-Themen 4
W Warum diese Fehlermeldung? Java Basics - Anfänger-Themen 12
nbergmann Unverständliche Fehlermeldung Java Basics - Anfänger-Themen 56
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
J Fehlermeldung im Checkstyle Java Basics - Anfänger-Themen 11
S Fehlermeldung Java Basics - Anfänger-Themen 7
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
EchtKeineAhnungManchmal Hallo :) ich bekomme es nicht hin eine Fehlermeldung auszugeben über die GUI Java Basics - Anfänger-Themen 3
C Fehlermeldung Array zuweisen und printen Java Basics - Anfänger-Themen 22
J Fehlermeldung Java Basics - Anfänger-Themen 22
J Fehlermeldung: A JNI error Java Basics - Anfänger-Themen 3
R Fehlermeldung aber WO liegt der Fehler? Java Basics - Anfänger-Themen 7
JavaClara Fehlermeldung bei split-Methode Java Basics - Anfänger-Themen 12
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
C Fehlermeldung InOut. Java Basics - Anfänger-Themen 7
B Methoden if-statement error, FX, Fehlermeldung Java Basics - Anfänger-Themen 6
A Fehlermeldung Java Basics - Anfänger-Themen 5
H Comparator Fehlermeldung Java Basics - Anfänger-Themen 5
D Folgende Fehlermeldung bei der Installation von JAVAFX Java Basics - Anfänger-Themen 1
M Java heap space Fehlermeldung beheben Java Basics - Anfänger-Themen 3
T Fehlermeldung beim Versuch, einen String einzulesen Java Basics - Anfänger-Themen 4
S Bitte Hilfe zu Fehlermeldung am Handy Java Basics - Anfänger-Themen 2
H fehlermeldung Java Basics - Anfänger-Themen 447
H fehlermeldung Java Basics - Anfänger-Themen 9
T Fehlermeldung beim Starten von FlashTool Java Basics - Anfänger-Themen 27
C Fehlermeldung mit Intger. Java Basics - Anfänger-Themen 3
A Fehlermeldung Java Basics - Anfänger-Themen 3
D Wie kann man eine solche Fehlermeldung abfangen Java Basics - Anfänger-Themen 4
H Fehlermeldung bei der Ausführung eines Compilierten PRGs Java Basics - Anfänger-Themen 9
N Fehlermeldung beim ausführen des Programmes.. Java Basics - Anfänger-Themen 3
x-tshainge Fehlermeldung Java Basics - Anfänger-Themen 2
M Erste Schritte NetBeans Fehlermeldung Java Basics - Anfänger-Themen 2
D Fehlermeldung obwohl Variablen bereits deklariert sind? Java Basics - Anfänger-Themen 14
N Fehlermeldung bei Methode Java Basics - Anfänger-Themen 12
I String index out of range Fehlermeldung Java Basics - Anfänger-Themen 4
I Fehlermeldung bei Darstellung von Arrays Java Basics - Anfänger-Themen 2
S Variablen JLabel backImagePanel Fehlermeldung Java Basics - Anfänger-Themen 3
A checkstyle Fehlermeldung Java Basics - Anfänger-Themen 1
G Compiler-Fehler Fehlermeldung Java Basics - Anfänger-Themen 3
Pr0m3theus Fehlermeldung ArrayList add Java Basics - Anfänger-Themen 12
Arabicabohne Fehlermeldung bei Eclipse Java Basics - Anfänger-Themen 23
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
TheMenox Fehlermeldung / Arrays, Enhanced For Loops Java Basics - Anfänger-Themen 16
D Compiler-Fehler Anfänger Fehlermeldung Java Basics - Anfänger-Themen 3
Henri Fehlermeldung Java Basics - Anfänger-Themen 2
K Erste Schritte Fehlermeldung Java Basics - Anfänger-Themen 2
I Fehlermeldung: Java does not contain a main type Java Basics - Anfänger-Themen 1
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
J Bug? Seltsame Fehlermeldung Java Basics - Anfänger-Themen 7
J Fehlermeldung else without if Java Basics - Anfänger-Themen 5
J while(nst == 0) gibt Fehlermeldung Java Basics - Anfänger-Themen 4
L Fehlermeldung Java Basics - Anfänger-Themen 6
D Erste Schritte Fehlermeldung "Syntax error on token ";", { expected after this token" Java Basics - Anfänger-Themen 13
J Launcher Fehlermeldung Java Basics - Anfänger-Themen 0
H Compiler-Fehler Fehlermeldung Kompilier Java Basics - Anfänger-Themen 4
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
D Integer Fehlermeldung exception Java Basics - Anfänger-Themen 4
A Fehlermeldung beim aufruf der main Methode Java Basics - Anfänger-Themen 17
D Fehlermeldung beim Ausführen eines Java Programms Java Basics - Anfänger-Themen 4
H Kein Zugriff auf das Element einer JList möglich: Fehlermeldung Java Basics - Anfänger-Themen 2
S Vererbung Fehlermeldung: the hierarchy of the type "class name" is inconsistent Java Basics - Anfänger-Themen 10
D Fehlermeldung "com.element.JavaUpload.Manager" Java Basics - Anfänger-Themen 1
S Fehlermeldung bei format methode Java Basics - Anfänger-Themen 1
A Compiler-Fehler Fehlermeldung auf Mac Java Basics - Anfänger-Themen 3
K JDBC - Wie ist Fehlermeldung zu interpretieren Java Basics - Anfänger-Themen 3
O Methoden Fehlermeldung(Illegal start of expression) bei 4-Gewinnt-Spiel Java Basics - Anfänger-Themen 5
N Fehlermeldung nicht nachvollziehbar Java Basics - Anfänger-Themen 5
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
C addActionListener(this) - Fehlermeldung Java Basics - Anfänger-Themen 8
C Array List mit String vergleichen und Fehlermeldung ausgeben Java Basics - Anfänger-Themen 6
X Einfach verkettete Liste, keine Fehlermeldung Programm friert ein Java Basics - Anfänger-Themen 4
G Variablen Warum bekomme ich da eine Fehlermeldung? Java Basics - Anfänger-Themen 3
C GUI - SWT - Button-Fehlermeldung Java Basics - Anfänger-Themen 5
F Input/Output IOTools Fehlermeldung: cannot be resolved Java Basics - Anfänger-Themen 16
K Erste Schritte Datei gelöscht - nun Fehlermeldung Java Basics - Anfänger-Themen 2
S Fehlermeldung Java Basics - Anfänger-Themen 8
E Fehlermeldung und Fenster wird nicht mehr angezeigt Java Basics - Anfänger-Themen 12
E Fehlermeldung Java Basics - Anfänger-Themen 13
K Transparents Bild laden -> Fehlermeldung Java Basics - Anfänger-Themen 6
J Fehlermeldung reagieren Java Basics - Anfänger-Themen 10
F Array Fehlermeldung... Java Basics - Anfänger-Themen 2
B Fehlermeldung bei Klasse mit array Java Basics - Anfänger-Themen 3
L Erste Schritte Fehlermeldung bei Array-Programm Java Basics - Anfänger-Themen 4
G Fehlermeldung: A fatal error has been detected by the Java Runtime Environment Java Basics - Anfänger-Themen 7
Gugelhupf JDK installieren Fehlermeldung 1336 - Java SDK 7 Update 5 x64 Java Basics - Anfänger-Themen 4
K Fehlermeldung nach editor installation Java Basics - Anfänger-Themen 3
P Input/Output JOptionPane Fehlermeldung Catchen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben