#java
#java
Вопрос:
Я прошу прощения, если это слишком простой вопрос. Я понимаю, что каким-то образом мой [ Object o] находится вне области видимости, поэтому он не может найти символ.
Однако, похоже, я не могу решить эту проблему. Я совершенно не уверен, где что-то пошло не так. Я полагаю, что это последняя проблема в моем Задании, и она должна быть в полночь.
Любая помощь будет очень признательна 🙂
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:UsersRimZIdeaProjectsAssignment1srcSquare.java
Ошибка: (24, 22) java: не удается найти символ символ: местоположение переменной длины: переменная o типа java.lang.Объект
if (o.*length* == this.length)
return true;
^ вот в чем проблема
Комментарии:
1.
Object
у s нет поляlength
. Приведите объект и проверьте.2. Итак, будет рассмотрен любой квадрат с длиной, кратной 50
==
? По крайней мере, это то, что говорит ваша реализация hashcode
Ответ №1:
Вам нужно привести свой Object
в Square
:
Square otherSquare = (Square) o;
...
if (otherSquare.length == this.length)
return true;