Конструкторы с параметрами

Хотя в предыдущем примере конструктор Box () инициализирует объект Box, он не особенно полезен — все параллелепипеды получают одинаковые размеры. Следовательно, необходим способ конструирования объектов Box с различными размерами. Простейшее решение этой задачи — добавление к конструктору параметров. Как легко догадаться, это делает конструктор значительно более полезным. Например, следующая версия класса Box определяет конструктор с параметрами, который устанавливает размеры параллелепипеда в соответствии со значениями этих параметров. Обратите особое внимание на способ создания объектов Box.

/* В этой программе класс Box использует конструктор
с параметрами для инициализации размеров параллелепипеда. */
class Box {
double width;
double height;
double depth;
// Это конструктор класса Box.
Box(double w, double h, double d) {
width = w;
height = h;
depth = d;
}
// вычисление и возврат объема double volume() {
return width * height * depth;
}
}
class BoxDemo7 {
public static void main(String args[]) {
// объявление, распределение и инициализация объектов Box
Box myboxl = new Box(10, 20, 15);
Box mybox2 = new Box(3, 6, 9);
double vol;
// получение объема первого параллелепипеда
vol = myboxl.volume ();
System.out.println("Объем равен " + vol);
// получение объема второго параллелепипеда
vol = mybox2.volume();
System.out.println("Объем равен " + vol);
}
}

Вывод этой программы имеет следующий вид:

Объем равен 3000.0
Объем равен 162.0

Как видите, инициализация каждого объекта выполняется в соответствии со значениями, указанными в параметрах его конструктора. Например, в следующей строке:

Box myboxl = new Box(10, 20, 15);

значения 10, 20 и 15 передаются конструктору Box () при создании объекта с помощью операции new. Таким образом, копии переменных width, height и depth будут содержать соответственно значения 10, 20 и 15.