- •Объектно-ориентированное программирование как идеология программирования и как технология. Достоинства и недостатки.
- •Основные понятия объектно-ориентированного программирования — класс, объект, поле, метод, свойство.
- •Класс. Синтаксис объявления класса. Ссылка на самого себя.
- •Конструкторы и деструкторы. Функциональное назначение. Виды конструкторов.
- •Объекты и их жизненный цикл. Создание и уничтожение объектов.
- •Инкапсуляция. Определение. Функциональное назначение. Реализация. Примеры применения.
- •Инкапсуляция. Свойства. Функциональное назначение. Реализация. Создание индексатора. Примеры применения.
- •Наследование. Функциональное назначение. Реализация. Примеры применения.
- •Наследование. Конструктор по умолчанию. Назначение.
- •Методы. Определение. Функциональное назначение. Способы реализации. Примеры применения.
- •Полиморфизм. Функциональное назначение. Способы реализации. Примеры применения.
Объектно-ориентированное программирование как идеология программирования и как технология. Достоинства и недостатки.
ООП — парадигма программирования, в которой основными концепциями являются понятия объекта и класса. ООП — идеология и технология программирования.
Объектно-ориентированные программы более просты и мобильны, их легче модифицировать и сопровождать, чем их "традиционных" собратьев. Кроме того, похоже, сама идея объектной ориентированности при грамотном ее использовании позволяет программе быть даже более защищенной от различного рода ошибок, чем это задумывал программист в момент работы над ней.
Однако сами идеи ООП довольно трудны для восприятия "с нуля".
Стратегию ООП лучше всего описать как смещение приоритетов в процессе программирования от функциональности приложения к структурам данных. Это позволяет программисту моделировать в создаваемых приложениях реальные объекты и ситуации.
Технология ООП обладает тремя главными преимуществами:
повышенно надежна и проста для сопровождения — правильное проектирование обеспечивает простоту расширения и модификации объектно-ориентированных программ. Модульная структура позволяет вносить независимые изменения в разные части программы, сводя к минимуму риск ошибок программирования;
ускоряет цикл разработки — модульность и здесь играет важную роль, поскольку различные компоненты объектно-ориентированных программ можно легко использовать в других программах, что уменьшает избыточность кода и снижает риск внесения ошибок при копировании.
Специфика ООП заметно повышает эффективность труда программистов и позволяет им создавать более мощные, масштабируемые и эффективные приложения.
Идеология ООП держится на трех китах: наследование, полиморфизм (то есть использование виртуальных функций), инкапсуляция. Но главный из них — наследование. Без наследования все остальное не имеет смысла.
Отличается от предыдущих идеологий обработкой данных в единой синтаксической конструкции (классе).
Основные понятия объектно-ориентированного программирования — класс, объект, поле, метод, свойство.
Объект — это специфическая компьютерная сущность, которая существует в компьютерной памяти и может описывать реальный объект.
В современных объектно-ориентированных языках программирования каждый объект является значением, относящимся к определённому классу. У класса существует множество определений
Класс — шаблон создания объекта.
Класс также представляет собой объявленный программистом составной тип данных, имеющий в составе:
Поля данных — параметры объекта, задающие его состояние (свойства объекта предметной области). Иногда поля данных объекта называют свойствами объекта, из-за чего возможна путаница. Физически поля представляют собой значения (переменные, константы), объявленные как принадлежащие классу.
Объекты одного класса имеют одинаковые поля.
Свойство — механизм доступа к полям.
Свойство — способ доступа к внутреннему состоянию объекта, имитирующий переменную некоторого типа. Обращение к свойству объекта выглядит так же, как и обращение к структурному полю (в структурном программировании), но, в действительности, реализовано через вызов функции. При попытке задать значение данного свойства вызывается один метод, а при попытке получить значение данного свойства — другой.
Свойство — псевдополе, доступное для чтения и / или записи.
Метод — процедура или функция, связанная с классом. Они определяют действия, которые можно выполнять над объектом такого типа, и которые сам объект может выполнять.