Не удается найти символ.. (a.volume является ошибкой и показан в компиляторе, так как не может найти символ, пожалуйста, помогите)
class Method
{ double w,h,d;
double volume(double w,double h,double d)
{
return (h*w*d);
}
}
class Methodtwo
{
public static void main(String args [])
{
Method a= new Method();
a.volume(2,3,4);
double v;
v=a.volume;
System.out.println(v);
}
}
3 ответа
Попробуйте написать что-то вроде этого:
v = a.volume(2, 3, 4);
Потому что это экземпляр volume
должен быть метод.
И попробуй это выучить Java
Перепроверьте свой метод двумя классами. Вы назвали v=a.volume;
и это неправильно, потому что volume()
Метод требует три параметра. Проверьте исправленный код.
class Method
{ double w,h,d;
double volume(double w,double h,double d)
{
return (h*w*d);
}
}
class Methodtwo
{
public static void main(String args [])
{
Method a= new Method();
double v = a.volume(2,3,4);
System.out.println(v);
}
}
Проблема в том, что вы не сохраняете результат метода "volume" при вызове a.volume. Происходит следующее:
- Вы называете a.volume(2,3,4). Метод возвращает 24, но значение нигде не сохраняется.
- Затем вы определяете double v и пытаетесь установить его в переменную с именем a.volume. Это потому, что у вас нет скобки "()" в конце оператора присваивания v=....
Есть несколько способов исправить это. Одним из способов является:
double v = a.volume(2,3,4)
Другой способ - сохранить значение при вызове a.volume в классе с именем method.
class Method
{
double volumeValue
double volume(double w,double h,double d)
{
volumeValue = h * w * d;
}
}
Затем измените v=a.volume на v=a.volumeValue. Таким образом, Java устанавливает volumeValue при вызове a.volume(2,3,4), а затем v=a.volumeValue просит Java вернуть значение, которое вы сохранили в последний раз.