не получается повторить пример из книги г.Шилдт (Java)
книга г.Шилдт по java, стр176. переписываю код из книги, но у меня показывает ошибку. Я так понимаю не видит метод в другом классе? обьясните
import javax.swing.*;
class box {
double width, heigth, depth;
double volume() {
return width*heigth*depth;
}
void setDim(double w, double h, double d) {
width = w;
heigth = h;
depth = d;
}
}
class BoxDemo5 {
public static void main(String args[]) {
Box mybox1 = new Box();
Box mybox2 = new Box();
double vol;
mybox1.setDim(10,20,15);
mybox2.setDim(3,6,9);
vol=mybox1.volume();
System.out.println("Volume = "+vol);
vol=mybox2.volume();
System.out.println("Volume = "+vol);
}
}
Ответы (1 шт):
Потому что вы класс назвали box, а используете класс Box. Вас не смущает, что у них регистр разный? Этот пример полностью работоспособный. Более того, что вы используете не то название класса, вы ещё и подключили не тот класс — из пакета javax.swing.Box. Ваш класс разве в этом пакете находится?
Пакеты создали для того, чтобы отделять одинаковые названия (на самом деле не только из-за этого, но не хочу Вас грузить подробностями). Когда вы хотите использовать какой-то класс, то IDEA подсказывает Вам какие классы с таким именем существуют и указывают пакет в котором они находятся. Как видите, помимо вашего класса (он помечен default package) есть ещё javax.swing.Box, которые к вашему не имеет никакого отношения.
- Переименуйте класс
- Используйте класс из правильного пакета
P.S. Либо можете не переименовывать и оставить название класса box и в коде измените Box на box. Думается мне аналогов вашему классу с маленькой буквы не существует :) По Java Code Conventions классы ДОЛЖНЫ начинаться с большой буквы

