Главная » Java » Способы вызова метода Java

0

В общем случае объекты не оперируют с данными, принадлежащими другим объектам, напрямую, хотя, как было показано на примере класса Роint, возможности полного доступа к полям класса извне могут быть легко обеспечены.

 Чтобы осуществить вызов (invocation) метода, следует указать имена соответствующего целевого (target) объекта и самого метода, разделяя их символом точки. Аргументы (arguments) передаются методу в виде списка значений, перечисленных через запятую и заключенных в круглые скобки. При вызове методов, не предусматривающих задания параметров, круглые скобки все еще обязательны, хотя в промежутке между ними ничего не вводится.

Метод способен возвращать в качестве результата своей работы единственное значение. Если необходимо обеспечить возможность возврата нескольких значений, следует создать объект, предназначенный для хранения требуемых полей данных, и возвращать его из метода.

В момент вызова метода выполнение текущего блока кода приостанавливается и управление передается первой инструкции тела вызываемого метода. По завершении кода метода управление возвращается инструкции, следующей за командой вызова метода. После передачи управления коду метода целевой объект, Владеющий методом и указанный при вызове, получает статус текущего (current), или объекта-приемника (receiver), – с точки зрения самого метода. Доступ к аргументам, переданным методу, осуществляется посредством параметров, задаваемых в конструкции объявления метода.

Рассмотрим метод distance, который должен войти в состав класса Роint, объявленного ранее. Метод distance в качестве параметра принимает другой объект Роint, вычисляет евклидово расстояние между точками, данные о которых хранятся в текущем объекте и объекте-параметре, и возвращает это расстояние в виде числа двойной точности с плавающей запятой.

 

public double distance(point that) {

       double xdiff = х – that.x;

       double ydiff = у – that.y;

       return Math.sqrt(xdiff * xdiff + ydiff * ydiff);

}

 Команда return завершает выполнение метода и передает управление тому блоку программы, откуда метод был вызван. В тексте метода distance мы воспользовались методом sqrt из состава класса Math стандартной библиотеки Java, который вычисляет квадратный корень аргумента – в данном случае суммы квадратов разностей одноименных координат, х и у, двух точек плоскости.

Чтобы продемонстрировать прием вызова метода distance, мы обратимся ~ созданным ранее объектам lowerLeft и upperRight класса Point:

double d = lowerLeft.distance(upperRight);

 

Здесь объект upperRight передается методу distance объекта lowerLeft в качестве аргумента и выглядит в теле distance как параметр that. После выполнения: выражения переменной d будет присвоено числовое значение, равное расстоянию между точками, которые описаны объектами lowerLeft и upperRight.

 

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии