Java Урок 21: КЛАСС, методы принимающие разные параметры

Методы с параметрами можно использовать для усовершенствования классов.

Скачать исходники для статьи можно ниже

Рассмотрим пример.

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.

Введите свой email адрес для того, чтобы подписаться на мой блог:


knopkisoc

Добавить комментарий