Методы с параметрами можно использовать для усовершенствования классов.
Скачать исходники для статьи можно ниже
Рассмотрим пример.
class Box {
double width;
double height;
double depth;
double volume() {
return width * height * depth;
}
}
class BoxDemo5 {
public static void main(String args[]) {
Box myboxl = new Box();
myboxl.width = 10;
myboxl.height = 20;
myboxl.depth = 15;
Box mybox2 = new Box();
mybox2.width = 3;
mybox2.height = 6;
mybox2.depth = 9;
double vol;
vol = myboxl.volume();
System.out.println("Объем равен " + vol);
vol = mybox2.volume();
System.out.println("Объем равен " + vol);
}
}
Хотя этот код работает, он не очень удобен по двум причинам.
Во-первых, он громоздкий и чреват ошибками. Например, вполне можно забыть определить один из размеров.
Во-вторых, в правильно спроектированных программах Java доступ к переменным экземпляра должен осуществляться только через методы,
определенные их классом. В будущем поведение метода можно изменить, но нельзя изменить поведение предоставленной переменной экземпляра.
Поэтому более рациональный способ установки размеров параллелепипеда —
создание метода, который принимает размеры параллелепипеда в виде своих параметров и соответствующим образом устанавливает значение каждой переменной экземпляра. Эта концепция реализована в приведенной ниже программе.
// Эта программа использует метод с параметрами.
class Box {
double width;
double height;
double depth;
double volume() {
return width * height * depth;
}
// установка размеров параллелепипеда
void setDim(double w, double h, double d) {
width = w;
height = h;
depth = d;
}
}
class BoxDemo5 {
public static void main(String args[]) {
Box myboxl = new Box();
Box mybox2 = new Box();
double vol;
myboxl.setDim(10, 20, 15);
mybox2.setDim(3, 6, 9);
vol = myboxl.volume();
System.out.println("Объем равен " + vol);
vol = mybox2.volume();
System.out.println("Объем равен " + vol);
}
}
Как видите, метод setDim() использован для установки размеров каждого
параллелепипеда. Например, при выполнении оператора
myboxl.setDim(10, 20, 15);
значение 10 копируется в параметр w, 20 — в h и 15 — в d. Затем внутри метода setDim() значения параметров w, h и d присваиваются соответственно переменным width, height и depth.


