Программирование >>  Обработка исключительных ситуаций 

1 ... 55 56 57 [ 58 ] 59 60 61 ... 142


Пример простейшего метола:

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, а три перегруженных варианта с обычными параметрами.



1 ... 55 56 57 [ 58 ] 59 60 61 ... 142

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика