|
Программирование >> Обработка исключительных ситуаций
Пример простейшего метола: oublic double GetyO метод для получения поля у из лис г ин га return у; Тип определяет, значение какого типа вычисляется с помощью метода. Часто употребляется термин метод возвращает значение , поскольку после выполнения метода происходит возврат в то место вызывающей функции, откуда был вызван метод, и передача туда значения выражения, записанного в операторе Stum (рис. 5.3). Если метод не возвращает никакого значения, в его заголовке задается тип void, а оператор return отсутствует. Вызывающая функция Метод Вызов метода return .. Возврат значения Рис. 5.3. Вызов метода Параметры используются для обмена информацией с метолом. Параметр представляет собой локальную переменную, которая при вызове метода принимает значение соответствующего аргумента. Область действия параметра - весь метод. Например, чтобы вычислить значение синуса для вещественной величины х, мы передаем ее в качестве аргумента в метод Sin класса Math, а чтобы вывести значе ние этой переменной на экран, мы передаем ее в метод WnteLioe класса Console ;cuble х = 0.1 : :;аЫе у - Math .Sin(x): 2iisole.Wri teLine(x); При этом метод Sin возвращает в точку своего вызова вещественное значение синуса, которое присваивается переменной у, а метод Wntel ine ничего не возвращает. ВНИМАНИЕ Метод, не возвращающий значение, вызывается отдельным оператором, а метол, возвращающий значение, - в составе выражения в правой части оператора присваивания. Параметры, описываемые в заголовке метода, определяют множество значений аргументов, которые можно передавать в метод. Список аргументов при вызове как бы накладывается на список параметров, поэтому они должны попарно и более полно реализовать принцип инкапсуляции. Непосредственный доступ извне к такому классу невозможен (имеется в виду доступ по имени без уточнения). Для вложенных типов можно использовать те же спецификаторы, что 1 и для полей класса . Например, введем в наш класс Monster вспомогательный класс Gun. Объекты этого класса без хозяина бесполезны, поэтому его можно определить как внутренний: using System; namespace ConsoleApplicationi { class Monster { class Gun Помимо классов вложенными могут быть и другие типы данных: интерфейсы, структуры и перечисления. Мы рассмотрим их в главе 9. Рекомендации по программированию Как правило, класс как тип, определенный пользователем, должен содержать скрытые (private) поля и следующие функциональные элементы: конструкторы, определяющие, как инициализируются объекты класса; набор методов и свойств, реализующих характеристики класса; классы исключений, используемые для сообщений об ошибках путем генерации исключительных ситуаций. Классы, моделирующие математические или физические понятия, обычно также содержат набор операций, позволяющих копировать, присваивать, сравнивать объекты и производить с ними другие действия, требующиеся по сути класса. Перегруженные операции класса должны иметь интуитивно понятный общепринятый смысл (например, не следует заставлять операцию + выполнять что-либо, кроме сложения или добавления). Если какая-либо операция перегружена, следует перегрузить и аналогичные операции, например + и ++ (компилятор этого автоматически не сделает). При этом операции должны иметь ту же семантику, что и их стандартные аналоги. 1 Спецификаторы описаны в разделе Данные: поля и константы (см. с. 104). Рекомендации по программированию 171 В подавляющем большинстве классов для реализации действий с объектами класса предпочтительнее использовать не операции, а методы, поскольку им можно дать осмысленные имена. Перегруженные методы, в отличие от операций, применяются в классах повсеместно - как минимум, используется набор перегруженных конструкторов для создания объектов различными способами. Методы с переменным числом параметров реализуются менее эффективно, чем обычные, поэтому если, к примеру, требуется передавать в метод два, три или четыре параметра, возможно, окажется более эффективным реализовать не один метод с параметром params, а три перегруженных варианта с обычными параметрами.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |