Объектно-ориентированное программирование (ООП)
- ООП, как идеология программирования. Отличия от предшествующих подходов, применяемых в программировании ранее.
- Основные понятия ООП: класс, объект, поле, свойство, метод, событие. Реализация событий с помощью модели делегатов [*].
- Понятие класса в ООП. Синтаксис объявления класса. Члены класса.
- Объекты в ООП. Принадлежность объекта типу (связь между типом и объектом). Жизненный цикл объектов: создание и разрушение объектов. Garbage Collector и разрушение объектов.
- Конструкторы: понятие, назначение, примеры применения. Параметризованные конструкторы. Конструкторы «по-умолчанию». Скрытые (private) конструкторы.
- Инкапсуляция: понятие, назначение, примеры применения. Ограничение области видимости членов класса (private, public, protected, internal).
- Инкапсуляция. Реализация механизма инкапсуляции через свойства. Функции-аксессоры (set, get). Отсутствие или ограничение области видимости одного из аксессоров.
- Наследование: понятие, назначение, примеры применения. Поведение различных членов класса при наследовании. Совпадения сигнатур методов при наследовании.
- Агрегация: понятие, назначение, примеры применения. Отличия от наследования. Жизненный цикл агрегируемых объектов.
- Методы класса. Сигнатура метода. Абстрактные (abstract), виртуальные (virtual) и перезаписанные (override) методы. Статические (static) методы классов и особенности их применения.
- Перегрузка операций: понятие, назначение, примеры применения. Перегрузка арифметических и логических операций. Особенности перегрузки операции равенства (==).
- Полиморфизм: понятие, назначение, примеры применения. Суть принципа «один интерфейс – множество методов».
- Исключительные ситуации: понятие, назначение, примеры применения. Иерархия исключений. Создание (throw) и перехват (try-catch-finally) объектов-исключений. Способы реагирования на исключительные ситуации. Исключения, которые нельзя перехватить.
- Интерфейсы: понятие, назначение, примеры применения. Реализация интерфейсов. Приведение к интерфейсу. Коллизия имен при реализации двух и более интерфейсов. Назначение интерфейсов IComparable, IClonable, ISerializeable.
- Функциональный тип – делегаты: понятие, назначение, примеры применения. Функция, как экземпляр делегата. Делегат, как свойство класса.
Возможности языка C# и платформы.NET
- Программный проект: консольный, оконный. Файлы, составляющие проект. Исполняемые файлы (*.ЕХЕ). Понятие «сборки» в.NET.
- Система типов языка C#. Размерные (value-type) и ссылочные (reference-type) типы. Семантика присваивания. Преобразования между ссылочными и размерными типами. «Упаковка-распаковка» типов (boxing, unboxing).
- Соглашение о совместимости и преобразование типов. Явные и неявные преобразования. Класс Convert.
- Переменные и выражения. Области видимости и жизни переменных. Глобальные и локальные переменные. Константы.
- Операции в выражениях, приоритет операций. Операции sizeof и typeof. Операция new.
- Методы арифметических классов. Операции сдвига.
- Логические операции, условные выражения. Операции проверки типа и приведения к типу.
- Составные типы данных, массивы, списки. Многомерные и вложенные (jagged) массивы. Класс Array. Семантика присваивания массивов.
- Строки постоянной длины (string и String) и построитель строк (StringBuilder). Операции над строками.
- Структуры (struct) и перечисления (enum). Отличия структур от классов.
[*] Курсивом выделены вопросы повышенной сложности. При ответе на такой вопрос можно повысить свою оценку на экзамене или не отвечать на другой вопрос билета (на усмотрение экзаменатора).
Дата добавления: 2015-09-04; просмотров: 85 | Нарушение авторских прав
mybiblioteka.su - 2015-2024 год. (0.006 сек.)