Java Урок 18: КЛАСС, добавдение метода в класс, вызов метода класса

Обычно классы состоят из двух элементов: переменных экземпляра и методов. Перед тем, как приступить к добавлению методов к своим классам, необходимо ознакомиться с рядом их основных характеристик.

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

Общая форма объявления метода выглядит следующим образом.

тип имя (список_параметров) {
   //тело метода
}

Здесь тип указывает тип данных, возвращаемых методом. Он может быть любым допустимым типом, в том числе типом класса, созданным программистом.
Если метод не возвращает значение, типом его возвращаемого значения должен быть void.
Имя служит для указания имени метода. Оно может быть любым допустимым идентификатором, кроме тех, которые уже используются другими элементами в текущей области видимости.
Список_параметров — последовательность пар “тип-идентификатор”, разделенных запятыми. По сути, параметры — это переменные, которые принимают значения аргументов, переданных методу во время его вызова. Если метод не имеет параметров, список параметров будет пустым.

ДОБАВЛЕНИЕ МЕТОДА КЛАССА Box.

Хотя было бы весьма удобно создать класс, который содержит только данные, в реальных программах подобное встречается редко. В большинстве случаев для доступа к переменным экземпляра, определенным классом, придется использовать методы.

Теперь приступим к добавлению метода в класс Box. Поскольку объем параллелепипеда зависит от его размеров, вполне логично, чтобы его вычисление выполнялось в классе Box. Для этого в класс Box нужно добавить метод, как показано в следующем примере.

class Box {
   double width;
   double height;
   double depth;
   // отображение объема параллелепипеда
   void volume() {
      System.out.print("Объем равен ");
      System.out.println(width * height * depth);
   }
}
 
class BoxDemo3 {
   public static void main(String args[]) {
      Box myboxl = new Box();
      Box mybox2 = new Box();
      myboxl.width = 10;
      myboxl.height = 20;
      myboxl.depth = 15;
      mybox2.width = 3;
      mybox2.height = 6;
      myboxl.volume();
      mybox2.volume();
   }
}

Эта программа создает следующий вывод:
Объем равен 3 000.0
Объем равен 162.0

Внимательно взгляните на следующие две строки кода.

myboxl.volume();
mybox2.volume();

В первой строке присутствует обращение к методу volume () объекта myboxl.
То есть она вызывает метод volume () по отношению к объекту myboxl, для чего было использовано имя объекта, за которым следует точечный оператор. Таким образом, обращение к методу myboxl.volume () отображает объем параллелепипеда, определенного объектом myboxl, а обращение к методу mybox2.volume () — объем параллелепипеда, определенного объектом mybox2. При каждом вызове метод volume () отображает объем указанного параллелепипеда.

Соображения, приведенные в следующих абзацах, облегчат понимание концепции
вызова метода. При вызове метода myboxl .volume () система времени выполнения Java передает управление коду, определенному внутри метода volume ().
По завершении выполнения всех операторов внутри метода управление возвращается вызывающей программе, и ее выполнение продолжается со строки, которая следует за вызовом метода. В самом общем смысле можно сказать, что метод — способ реализации подпрограмм в Java.

В методе volume () следует обратить внимание на один очень важный нюанс:
ссылка на переменные экземпляра width, height и depth выполняется непосредственно,
без указания перед ними имени объекта или точечного оператора.
Когда метод использует переменную экземпляра, которая определена его классом, он выполняет это непосредственно, без указания явной ссылки на объект и без применения точечного оператора. Это становится понятным, если немного подумать.
Метод всегда вызывается по отношению к какому-то объекту его класса.
Как только этот вызов выполнен, объект известен. Таким образом, внутри метода вторичное указание объекта совершенно излишне. Это означает, что переменные width, height и depth неявно ссылаются на копии этих переменных, хранящиеся в объекте, который вызывает метод volume ().

Подведем краткие итоги. Когда обращение к переменной экземпляра выполняется кодом, не являющимся частью класса, в котором определена переменная экземпляра, необходимо указать объект при помощи точечного оператора. Однако когда это обращение осуществляется кодом, который является частью того же класса, где определена переменная экземпляра, ссылка на переменную может выполняться непосредственно. Эти же правила применимы и к методам.

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


knopkisoc

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