
- •Основные положения объектно-ориентированного программирования. Технология объектно-ориентированного программирования: назначение и применение.
- •Основные парадигмы объектно-ориентированного программирования: абстракция.
- •Основные парадигмы объектно-ориентированного программирования: инкапсуляция. Доступ к элементам класса (public, protected, private).
- •Основные парадигмы объектно-ориентированного программирования: полиморфизм.
- •Пространство имен: назначение и применение.
- •Структура класса: члены класса, свойства (элементы), методы, конструкторы и деструкторы, ссылка на себя (this).
- •Управление доступом к членам класса.
- •Конструкторы класса: по умолчанию, с аргументами, копирующие.
- •Перегружаемые методы класса.
- •Статические члены класса: назначение и применение.
- •Константные члены класса: константные свойства, константные методы.
- •Обработка исключений (try/catch/throw-конструкция).
- •Вложенные объекты.
- •Вложенные классы.
- •Принципы преобразования типов.
- •Виртуальные функции.
- •Абстрактные классы.
- •Перегружаемые операторы: бинарные, унарные, префиксные, постфиксные.
- •Спецификация cli. Структура .Net Framework.
- •С#: пространства имен, структура класса, свойства.
Константные члены класса: константные свойства, константные методы.
Практически любой объект содержит в себе данные, которые не должны меняться в процессе его использования. Значение их заранее предопределено разработчиком класса или устанавливается один раз в конструкторе при инициализации объекта. Для объявления таких данных в классе используется квалификатор const. Значение атрибутов с таким квалификатором могут быть только проинициализированы, а попытка изменения установленного при инициализации значения вызовет ошибку компиляции. Помимо константных данных класс может содержать константные функции-члены. Константные функции-члены - это такие функции класса, которые не изменяют внутреннее состояние (атрибуты класса) объекта класса. Для их объявления тоже используется квалификатор const , но записывается он в заголовке или прототипе функции после формальных параметров,
Из названия легко догадаться, что константы (constants), представлен-
ные ключевым словом const,— это поля, остающиеся постоянными в тече-
ние всего времени жизни приложения. Определяя что-либо как const, дос-
таточно помнить два правила. Во-первых, константа — это член, значение
которого устанавливается в период компиляции программистом или ком-
пилятором (в последнем случае это значение по умолчанию). Во-вторых,
значение члена-константы должно быть записано в виде литерала.
Обработка исключений (try/catch/throw-конструкция).
Исключительная ситуация (или исключение) — это ошибка, которая возникает во
время выполнения программы. Используя С#-подсистему обработки исключи-
тельных ситуаций, с такими ошибками можно справляться. Преимущество подсистемы обработки исключений состоит в автоматизации созда-
ния большей части кода, который ранее необходимо было вводить в программы
"вручную". Например, в любом компьютерном языке при отсутствии такой подсисте-
мы практически каждый метод возвращал коды ошибок, и эти значения проверялись
вручную при каждом вызове метода. Такой подход довольно утомителен, кроме того,
при этом возможно возникновение ошибок. Обработка исключений упрощает "работу
над ошибками", позволяя в программах определять блок кода, именуемый обработчи-
ком исключении, который будет автоматически выполняться при возникновении опре-
деленной ошибки. В этом случае не обязательно проверять результат выполнения ка-
ждой конкретной операции или метода вручную. Если ошибка возникнет, ее долж-
ным образом обработает обработчик исключений. Еще одним преимуществом обработки исключительных ситуаций в С# является
определение стандартных исключений для таких распространенных программных
ошибок, как деление на нуль или попадание вне диапазона определения индекса. Программные инструкции, которые нужно проконтролировать на предмет исклю-
чений, помещаются в try-блок. Если исключение таки возникает в этом блоке, оно
дает знать о себе выбросом определенного рода информации. Это выброшенное исклю-
чение может быть перехвачено программным путем с помощью catch-блока и обрабо-
тано соответствующим образом. Системные исключения автоматически генерируются
С#-системой динамического управления. Чтобы сгенерировать исключение вручную,
используется ключевое слово throw. Любой код, который должен быть обязательно
выполнен при выходе из try-блока, помещается в блок finally. Ядром обработки исключений являются блоки t r y и catch. Эти ключевые слова
работают "в одной связке"; нельзя использовать слово t r y без catch или catch без
try. Вот каков формат записи try/catch-блоков обработки исключений:
t r y {
// Блок кода, подлежащий проверке на наличие ошибок.
}
catch {ExcepTypel exOb) {
// Обработчик для исключения типа ExcepTypel.
}
catch (ExcepType2 exOb) {
// Обработчик для исключения типа ЕхсерТуре2.
}….
Здесь ЕхсерТуре — это тип сгенерированного исключения. Как видно и^ формата записи try/catch-блоков, с try-блоком может быть связана не одна, а несколько catch-инструкций. Перехват одного из стандартных С#-исключений, как показала предыдущая про-
грамма, имеет побочный эффект: он предотвращает аварийное окончание программы.
При генерировании исключения оно должно быть перехвачено программным кодом.
Если программа не перехватывает исключение, оно перехвачивается С#-системой ди-
намического управления. Но дело в том, что система динамического управления со-
общит об ошибке и завершит программу.