Cannot make a static reference to the non-static field rimWidth

Kirby.exe

Top Contributor
Ich verstehe ehrlich gesagt nicht wo das Problem ist...Warum ist dieser vergleich static?

Hier ist der Code dazu:

Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Wheel {

    private int rimWidth;
    private int rimHeigth;
   
    public Wheel(int rimWidth, int rimHeight) {
        this.rimWidth = rimWidth;
        this.rimHeigth = rimHeight;
    }
   
    public void addTire() {
        System.out.println("Welche Art von Reifen möchten sie ? Sommer oder Winterreifen?");
        String mode = readString();
        Tire newTire = findTire(mode);
       
       
    }
   
    private static Tire findTire(String mode) {
        TireDatabase db = new TireDatabase();
        if(mode.equals("sommer")) {
            ArrayList<Tire> summerDB = db.getSummerTires();
            for(Tire it: summerDB) {
                if(it.getTireWidth() == rimWidth && it.getTireRimSize() == rimHeigth) {
                    return it;
                }
            }
        }else if(mode.equals("winter")) {
            ArrayList<Tire> summerDB = db.getWinterTires();
        }else {
            System.out.println("Hast du dich vertippt? Diese Art von Reifen gibt es nicht!");
        }
        return null;
    }
   
    private static String readString(){
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        try {
            return in.readLine();
        }catch(IOException ex) {
            ex.printStackTrace();
        }
        return null;
    }
}

Java:
public class Tire {
    
    private int maxSpeed;
    private int tireWidth;
    private int tireRimSize;
    private int tireProcentage;
    private String tireBrand;
    private String tireName;
    
    public Tire(String tireBrand, String tireName, int maxSpeed, int tireWidth, int tireRimSize, int tireProcentage) {
        this.tireBrand = tireBrand;
        this.tireName = tireName;
        this.maxSpeed = maxSpeed;
        this.tireWidth = tireWidth;
        this.tireRimSize = tireRimSize;
        this.tireProcentage = tireProcentage;
    }
    
    public int getTireWidth() {
        return tireWidth;
    }
    
    public int getTireRimSize() {
        return tireRimSize;
    }
    
    public String toString() {
        return tireBrand + " " + tireName + ", Dimensions: [" + tireWidth + "/" + tireProcentage + "R" + tireRimSize + "]  (Max Speed: " + maxSpeed + " KM/H)";
    }
    
}
 

httpdigest

Top Contributor
Die Methode findTire ist static und du versuchst, darin auf eine Variable rimWidth zuzugreifen, die im aktuellen Scope zu der Instanzvariable `private int rimWidth` auflösen würde. Das geht natürlich nicht.
 

Kirby.exe

Top Contributor
Jetzt warst Du zu schnell. Worum geht es überhaupt?
Ich hatte mich gefragt wie ich die findTire Methode, welche Static war als non static benutzen kann...jedoch geht sie auch als non static xD Jedoch frage ich mich, wieso kann in sie in der Klasse aufrufen, obwohl sie non static ist xD

So sieht die Klasse jetzt aus:

Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Wheel {

    private int rimWidth;
    private int rimHeigth;
    private Tire tire;
    
    public Wheel(int rimWidth, int rimHeight) {
        this.rimWidth = rimWidth;
        this.rimHeigth = rimHeight;
        tire = null;
    }
    
    public void addTire() {
        System.out.println("Welche Art von Reifen möchten sie ? Sommer oder Winterreifen?");
        String mode = readString();
        tire = findTire(mode);
        if(tire != null) {
            System.out.println("Tire has been changed successful!");
        }else {
            System.out.println("There is no Tire for these Dimensions!");
        }
        System.out.println(tire.toString());
    }
    
    private Tire findTire(String mode) {
        TireDatabase db = new TireDatabase();
        if(mode.equals("sommer")) {
            ArrayList<Tire> summerDB = db.getSummerTires();
            for(Tire it: summerDB) {
                System.out.println("Tire Widht: " + it.getTireWidth() + " | Rim Width: " + rimWidth);
                System.out.println("Tire Heigth: " + it.getTireRimSize() + " | Rim Heigth: " + rimHeigth);
                if(it.getTireWidth() == rimWidth && it.getTireRimSize() == rimHeigth) {
                    return it;
                }
            }
        }else if(mode.equals("winter")) {
            ArrayList<Tire> winterDB = db.getWinterTires();
            for(Tire it: winterDB) {
                if(it.getTireWidth() == rimWidth && it.getTireRimSize() == rimHeigth) {
                    return it;
                }
            }
        }else {
            System.out.println("Hast du dich vertippt? Diese Art von Reifen gibt es nicht!");
        }
        return null;
    }
    
    private static String readString(){
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        try {
            return in.readLine();
        }catch(IOException ex) {
            ex.printStackTrace();
        }
        return null;
    }
}
 

mihe7

Top Contributor
Jedoch frage ich mich, wieso kann in sie in der Klasse aufrufen, obwohl sie non static ist xD
Warum denn nicht?

Mit static werden Klassenvariablen und -methoden gekennzeichnet, also solche Attribute, die sich auf die Klasse als Ganzes und nicht auf ein einzelnes Objekt beziehen.

Daher kannst Du von einer Klassenmethode aus auch keine Objektmethoden aufrufen oder auf Instanzvariablen zugreifen - mangels Objekt. Umgekehrt funktioniert das dagegen natürlich schon.

Ich hatte mich gefragt wie ich die findTire Methode,
Sorry, das meinte ich nicht. Ich meinte, worum es insgesamt geht. Was willst Du überhaupt modellieren?
 

Kirby.exe

Top Contributor
Warum denn nicht?

Mit static werden Klassenvariablen und -methoden gekennzeichnet, also solche Attribute, die sich auf die Klasse als Ganzes und nicht auf ein einzelnes Objekt beziehen.

Daher kannst Du von einer Klassenmethode aus auch keine Objektmethoden aufrufen oder auf Instanzvariablen zugreifen - mangels Objekt. Umgekehrt funktioniert das dagegen natürlich schon.


Sorry, das meinte ich nicht. Ich meinte, worum es insgesamt geht. Was willst Du überhaupt modellieren?
Achse, also ich versuche gerade ein Auto zu modellieren :)
 

mihe7

Top Contributor
Aha... gut, dann solltest Du das UI-Zeug gleich mal aus der Klasse werfen. Und findTire (und was damit zusammenhängt) hat dort auch nichts verloren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Threads Cannot make a static reference.. Allgemeine Java-Themen 13
S Cannot make a static reference to the non-static field MySecondClass.Points Allgemeine Java-Themen 3
conan2 "Cannot make a static reference to the non-static field Allgemeine Java-Themen 8
A Variablen non-static variable cannot be referenced from a static content Allgemeine Java-Themen 4
Erwin82a Object cannot be converted to Custom Class in Lampda Expression Allgemeine Java-Themen 2
B Type mismatch: cannot convert from Graph.Edge to ArrayList<Graph.Edge> Allgemeine Java-Themen 21
D Selenium - cannot find Chrome binary Allgemeine Java-Themen 6
bueseb84 Java : Cannot find Symbol Allgemeine Java-Themen 7
S class path resource [config.properties}] cannot be opened because it does not exist Allgemeine Java-Themen 4
C Compiler-Fehler Cannot find symbol bei Hat-Beziehungen Allgemeine Java-Themen 5
Tarrew RMI Java RMI - com.sun.proxy.$Proxy1 cannot be cast to Funktionen Allgemeine Java-Themen 0
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
R Char cannot be derefenrenced? Allgemeine Java-Themen 14
M Cannot create a generic array of T Allgemeine Java-Themen 5
127.0.0.1 Methodenaufruf -cannot find symbol- Allgemeine Java-Themen 14
S Type mismatch: cannot convert from Object to float Allgemeine Java-Themen 3
B Cannot find main-claas... Allgemeine Java-Themen 21
P Default constructor cannot handle exception type Allgemeine Java-Themen 6
M cannot be cast to java.lang.Comparable Allgemeine Java-Themen 5
K + cannot be applied Allgemeine Java-Themen 15
Tobse Cannot find symbol : construktor --- Deklariert! Allgemeine Java-Themen 9
D 'InputStreamReader' & 'BufferedReader' führen zu "cannot find symbol"-Fehler Allgemeine Java-Themen 3
X Cannot refer to a non-final variable settings inside an inner class defined in a different method Allgemeine Java-Themen 4
B cannot find Symbol Allgemeine Java-Themen 2
K java.io.IOException: Cannot validate certificate for jogl.dll Allgemeine Java-Themen 6
Saxony assert cannot be resolved Allgemeine Java-Themen 5
? Cannot run program + Vista Allgemeine Java-Themen 8
X cannot convert from Object[] to Integer[] Allgemeine Java-Themen 2
B aus java heraus kompillierte Klassen - cannot be resolved Allgemeine Java-Themen 3
G [quote]the type HashMap is not generic; it cannot be paramet Allgemeine Java-Themen 4
R cannot be referenced! Allgemeine Java-Themen 18
R Cannot be referenced. Allgemeine Java-Themen 7
G Kompiler Fehler: cannot resolve symbol: class Allgemeine Java-Themen 4
7 Cannot resolve Symbol keyPressed Allgemeine Java-Themen 3
A Fehlermeldung: cannot be resolved Allgemeine Java-Themen 5
G warum operator || cannot be applied to int, double Allgemeine Java-Themen 11
D Probleme mit 'cannot execute runjava.bat' Allgemeine Java-Themen 2
G Fehlermeldung "cannot resolve symbol" Allgemeine Java-Themen 7
V Cannot resolve symbol Allgemeine Java-Themen 7
E Methoden abstract static Methode Allgemeine Java-Themen 8
N nicht static und auch nicht new Allgemeine Java-Themen 3
P static Blocks und variablen Allgemeine Java-Themen 41
Thallius Ist meine static Helper Class Thread save? Allgemeine Java-Themen 9
S static in Interface und Klasse Allgemeine Java-Themen 2
S static methode im Interface Allgemeine Java-Themen 1
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
K Static Variablen verbieten Allgemeine Java-Themen 10
C Generic collections und static typing Allgemeine Java-Themen 4
M Warum nicht static ? Allgemeine Java-Themen 10
M Eine static-Methode verlassen Allgemeine Java-Themen 2
B Schlüsselworte [ERLEDIGT] static { } - Was ist das und wofür kann ich das brauchen? Allgemeine Java-Themen 1
J private static final String variable Allgemeine Java-Themen 8
L Non-static-Variables in Enumerationen Allgemeine Java-Themen 2
L OOP Klassen-Design (static oder nicht?) Allgemeine Java-Themen 3
T Enumeration/Static Final/Bitfield Allgemeine Java-Themen 6
T Static kann nicht verändert werden Allgemeine Java-Themen 3
H Programierstil: static - Zugriff vs. Staticzugriff Allgemeine Java-Themen 24
N Static oder andere Lösung Allgemeine Java-Themen 5
N Vererbung Static & private fields - Nicht ganz einfach? Allgemeine Java-Themen 4
M Wo hin mit static factory methods? Allgemeine Java-Themen 40
M Public Static importRunning -> Bad Design oder ok ? Allgemeine Java-Themen 5
M Methoden Static Methoden und Thread??? Allgemeine Java-Themen 4
S auf public void Methode zugreifen ohne static Allgemeine Java-Themen 11
K Static - Problem Allgemeine Java-Themen 10
M Variablen Variablenzugriff aus static void Allgemeine Java-Themen 21
D API - Beispiel + static member in inner (non static) class Allgemeine Java-Themen 2
S static methoden Allgemeine Java-Themen 9
S Performance Frage: Objekt oder static? Allgemeine Java-Themen 33
X HTTP Problem mit static/non static JTextArea Update Allgemeine Java-Themen 17
A Annotation einer Subklasse im static-Block auslesen. Allgemeine Java-Themen 6
woezelmann referenz der outer class aus static nested class heraus Allgemeine Java-Themen 7
B static Variable / Unterklasse Allgemeine Java-Themen 2
I Was macht static { ... } ? Allgemeine Java-Themen 8
G static inner Klassen Allgemeine Java-Themen 7
G static und dynamic linking? Allgemeine Java-Themen 32
J in einer static Variable Wert ändern Allgemeine Java-Themen 6
J Verständnisfrage - nested static classes Allgemeine Java-Themen 11
G static- Methoden überschreiben Allgemeine Java-Themen 10
E Geschwindigkeit static Allgemeine Java-Themen 6
V Static oder wie? Allgemeine Java-Themen 61
I reflection get inner static classes Allgemeine Java-Themen 2
L static main - Spezifikation? Allgemeine Java-Themen 7
G URLClassLoader stößt static Block nicht an Allgemeine Java-Themen 8
D static Allgemeine Java-Themen 46
P static-Methode aus dem Konstruktor aufrufen Allgemeine Java-Themen 6
oliver1974 "(.) should be accessed in a static way" Falsche W Allgemeine Java-Themen 6
P static Klassenvariable Allgemeine Java-Themen 15
B JPasswordField klassenübergreifend auslesen->static Probl Allgemeine Java-Themen 4
F Methoden: static vs. instance Allgemeine Java-Themen 24
MQue static Methoden/Klassen Allgemeine Java-Themen 7
K Warum static-Methoden nutzen Allgemeine Java-Themen 26
G Java-Befehle Native und Static Allgemeine Java-Themen 2
conan2 static-Block in Klassen Allgemeine Java-Themen 6
M JNI, static.a mit load.Library laden? Allgemeine Java-Themen 2
K Static Members von Superklasse für JEDEN Erben Allgemeine Java-Themen 6
padde479 The static method sleep(long) from the type Thread should. Allgemeine Java-Themen 2
M static-Methode vorschreiben Allgemeine Java-Themen 5
S singleton vs. static Allgemeine Java-Themen 7
G Object mit static Feldern speichern Allgemeine Java-Themen 9
J Warum heißt es eig. "public static void main" ? Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben