Главная » Java » Выполнение метода и возврат из него Java

0

 

При вызове метода управление передается из того места кода, откуда был осуществлен вызов, в тело метода. Выражения тела метода выполняются в порядке, предусмотренном его семантикой. Метод завершает работу и передает управление обратно в код-инициатор в результате возникновения одного из трех возможных событий: выполнения команды return, достижения конца тела метода или генерации необъявляемого исключения.

Если метод предусматривает возврат какого-либо значения, им может быть только одно значение простого или объектного типа. Методы, которые по смыслу должны возвращать несколько значений, способны решить эту задачу одним из следующих способов: (1) возвратить ссылку на объект, который содержит поля с требуемыми значениями; (2) разместить результаты работы в одном или нескольких объектах, на которые указывают ссылки, переданные методу в качестве аргументов; (3) возвратить массив объектов нужного типа. Предположим, например, что нам необходимо создать метод, который должен вернуть информацию о том, какие операции с Конкретным банковским счетом разрешено выполнять его владельцу. Следует принять во внимание, что владелец счета может быть наделен несколькими полномочиями (по выполнению приходных, расходных операций и т.п.) одновременно, поэтому метод должен обладать способностью возвращать группу значений. Решение задачи можно начать с объявления класса Permission, объекты которого позволяют хранить булевы значения, подтверждающие права владельца на выполнение тех или иных банковских операций:

 

public class Permissions {

       public boolean             canDeposit,     // Приход

       canWithdraw,                         // Расход

       canClose;                               // Закрытие счета

}

 

Любой вызов метода, предусматривающего возврат некоторого значения, должен завершаться либо выполнением соответствующей команды retuгn, передающей в код-инициатор значение, которое может быть присвоено переменной соответствующего типа, либо выбрасыванием объекта исключения. Но ничто не запрещает объявить в качестве наименования типа, возвращаемого методом permissionsFor, класс object, совершенно не затрагивая выражения return, так как ссылка на объект permissions может быть присвоена переменной типа object (если вспомнить, что класс object является базовым по отношению ко всем остальным классам Java). Подробные замечания по поводу взаимной совместимости различных типов приведены в главе 3.

Уnражкекие 2.10. Добавьте в текст класса Vehiclе объявление метода toString.

Уnражкекие 2.11. Добавьте в текст класса LinkedList объявление метода toString.

 

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

По теме:

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