Методы с параметрами можно использовать для усовершенствования классов.
Скачать исходники для статьи можно ниже
Рассмотрим пример.
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.