Ich entschuldige mich, wenn dies zu Anfänger einer Frage ist. Ich verstehe, dass einige, wie mein [Objekt o] außerhalb des Geltungsbereichs ist, deshalb das Symbol nicht finden kann.Java: kann Symbol nicht finden; Symbol: variable Länge
Allerdings kann ich nicht scheinen, das Problem zu beheben. Ich bin mir völlig unsicher, wo es schief gelaufen ist. Ich glaube, das ist das letzte Problem in meinem Auftrag, und es ist Mitternacht.
Jede Hilfe wäre sehr geschätzt :)
public class Square implements Shape
{
double length;
public Square(double length)
{
this.length = length;
}
@Override
public String toString()
{
return "Square";
}
@Override
public boolean equals(Object o)
{
if (o == null)
return false;
if(this.getClass() != o.getClass())
return false;
if (o.length == this.length)
return true;
else
return false;
}
@Override
public int hashCode()
{
return (int)length % 50;
}
public double getPerimeter()
{
return length * 4;
}
}
C:\Users\RimZ\IdeaProjects\Assignment1\src\Square.java
Error:(24, 22) java: cannot find symbol symbol: variable length location: variable o of type java.lang.Object
if (o.*length* == this.length)
return true;
^das ist, wo das Problem
'Objekt' s nicht habe field 'length'. Wirf das Objekt und überprüfe es. – Li357
Also würde jedes Quadrat mit einem Vielfachen von 50 Länge als '==' betrachtet werden? Zumindest sagt das Ihre Hashcode-Implementierung –