2016-10-14 10 views
0

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

+0

'Objekt' s nicht habe field 'length'. Wirf das Objekt und überprüfe es. – Li357

+0

Also würde jedes Quadrat mit einem Vielfachen von 50 Länge als '==' betrachtet werden? Zumindest sagt das Ihre Hashcode-Implementierung –

Antwort

2

Sie brauchen, ist Ihr Object in eine Square würfen

Square otherSquare = (Square) o; 
... 
if (otherSquare.length == this.length) 
    return true; 
Verwandte Themen