Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Рекурсивные методы

Рекурсивным называется метод, которая вызывает сам себя, такая рекурсия называется прямой. Рекурсия называется косвенной, когда два или более метода вызывают друг друга. Если метод вызывает себя, в стеки создается копия значения его параметров, как при вызове обычного метода. После этого управление передается первому исполняемому оператору метода. При повторном вызове этот процесс повторяется. Для завершения вычислений каждый рекурсивный метод должен иметь одну не рекурсивную ветвь, которая заканчивается оператором возврата. При завершении метода, соответствующая часть стека освобождается, и управление передается вызывающему методу, выполнение которого, продолжается с точки, следующей за рекурсивным вызовом. Рекурсивные методы применяют для реализации рекурсивных алгоритмов и для работы со структурами данных описанных рекурсивно.

Interface (Интерфейсы)

Синтаксис интерфейса аналогичен синтаксису класса, [атрибуты] [спецификаторы] interface имя_интерфейса[предки]

{тело}

Для интерфейса могут быть использованы спецификаторы:

New, public, protected, internal, private.

Спецификатор new – используется для вложенных интерфейсов, остальные спецификаторы управляют видимостью интерфейса, по умолчанию интерфейс доступен только из сборки, в которой он описан. Интерфейс может наследовать свойства нескольких интерфейсов. В этом случае предки перечисляются через запятую. Тело интерфейса составляют абстрактные методы, шаблоны свойств и индексаторов, а также события. Интерфейс не может содержать константы, поля, операции конструкторы, деструкторы типы, и любые статические элементы. В интерфейсе имеет смысл задавать заголовки тех методов и свойств, которые будут по-разному реализованы различными классами разных иерархий. Элементы интерфейса имеет спецификатор public. Все элементы интерфейса должны быть абстрактными. Класс, в списке предков которого задается интерфейс, должен определять все его элементы потомок абстрактного класса может не переопределять часть абстрактных методов предка. Класс может иметь в списке предков несколько интерфейсов при этом он должен определять все их методы. Для реализуемых элементов интерфейса в классе следует указывать спецификатор public. к этим элементам можно обращаться как через объект класса, так и через объект типа соответствующего интерфейса. В библиотеке.Net определено большое количество стандартных интерфейсов, которые описывают поведение объектов разных классов.

 

<== предыдущая лекция | следующая лекция ==>
Перегрузка методов | Клонирование объектов
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 423; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.