ООП, как идеология программирования. Отличия от предшествующих подходов, применяемых в программировании ранее.
В такой формулировке теряются анализ достоинств и недостатков. Просто изложишь концепцию ООП и отличия и все. Идеология не разрывна с технологией. А уж если говорить о «подходов, применяемых в программировании ранее», то сюда включаются и программирование во внутренних кодах – когда еще не было языков программирования. J
А какие ты имеешь ввиду «предшествующие» подходы? Структурное программирование? Модульное программирование? Так и то и другое в себя ООП включило?
Основные понятия ООП: класс, объект, поле, свойство, метод, событие. Реализация событий с помощью модели делегатов[*].
Это, я думаю, для ПОДАВЛЯЮЩЕГО кол-ва студентов СОВЕРШЕННО не понятно. Это я даже на лекциях не давал (только упоминал) – бесполезно – не проникнутся этим пока не попробуют руками. Да и скажи – ты сама когда-нибудь использовала делегатов? Я – нет.
Понятие класса в ООП. Синтаксис объявления класса. Члены класса.
Объекты в ООП. Принадлежность объекта типу (связь между типом и объектом). Жизненный цикл объектов: создание и разрушение объектов. Garbage Collector и разрушение объектов.
Инкапсуляция: понятие, назначение, примеры применения. Ограничение области видимости членов класса (private, public, protected, internal).
Инкапсуляция. Реализация механизма инкапсуляции через свойства. Функции-аксессоры (set, get). Отсутствие или ограничение области видимости одного из аксессоров.
Наследование: понятие, назначение, примеры применения. Поведение различных членов класса при наследовании. Совпадения сигнатур методов при наследовании.
Агрегация: понятие, назначение, примеры применения. Отличия от наследования. Жизненный цикл агрегируемых объектов.
Методы класса. Сигнатура метода. Абстрактные (abstract), виртуальные (virtual) и перезаписанные (override) методы. Статические (static) методы классов и особенности их применения.
Перегрузка операций: понятие, назначение, примеры применения. Перегрузка арифметических и логических операций. Особенности перегрузки операции равенства (==).
Но это же не так! Перегрузка это тоже полиморфизм. А интерфейсы различные.
Исключительные ситуации: понятие, назначение, примеры применения. Иерархия исключений. Создание (throw) и перехват (try-catch-finally) объектов-исключений. Способы реагирования на исключительные ситуации. Исключения, которые нельзя перехватить.
Интерфейсы: понятие, назначение, примеры применения. Реализация интерфейсов. Приведение к интерфейсу. Коллизия имен при реализации двух и более интерфейсов. Назначение интерфейсов IComparable, IClonable, ISerializeable.
Функциональный тип – делегаты: понятие, назначение, примеры применения. Функция, как экземпляр делегата. Делегат, как свойство класса.