- •ОБЪЕКТНО- ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
- •ЛИТЕРАТУРА
- •ВВЕДЕНИЕ В ООП
- •ООП оперирует с таким понятием как класс.
- •Важное свойство класса – детали его реализации скрыты от пользователей класса интерфейсом.
- •Свойства ООП
- •Инкапсуляция:
- •Наследование означает такое соотношение между классами, когда один класс использует структурную или функциональную
- •Иерархия классов представляется в виде древовидной структуры, в которой более общие классы располагаются
- •Полиморфизм – это свойство ООП, при котором одно и тоже имя может вызывать
- •Описание класса
- •private, protected, public – модификаторы уровня доступа.
- •Различают три вида пользователей класса:
- •Пример объявления класса с внешним описанием методов
- •point::point(double xVal, double)
- •Пример объявления класса со встроенными методами
- •Встроенные функции ускоряют работу программы за счёт увеличения исполнимого файла.
- •Метод описанный как внешний можно сделать встроенным с помощью ключевого слова inline.
- •Свойства полей класса:
- •- могут быть описаны с модификатором const, при этом они инициализируются только один
- •// ошибка!!! class point {
- •class Rect { class Point()
- •- внутри локального класса можно использовать типы, static и extern переменные, внешние функции
- •Создание объектов
- •2. Создание объектов с со специальной инициализацией .
- •При создании каждого объекта выделяется память, достаточная для хранения всех его полей, и
- •При выходе объекта из области видимости он уничтожается, при этом автоматически вызывается деструктор.
- •Доступ к элементам объекта аналогичен доступу к полям структуры.
- •Указатель this
- •В явном виде этот указатель применяется в
- •int main()
- •Указатель this можно также применять для идентификации поля класса в том случае, когда
- •Конструкторы
- •-класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации (при
- •-конструкторы не наследуются;
- •Конструктор вызывается, если в программе встретилась какая-либо из синтаксических конструкций:
- •Пример. Использование перегруженных конструкторов.
- •point::point(char *np)
- •Деструкторы
- •Деструктор вызывается автоматически:
- •Между конструктором и деструктором существует ряд различий:
- •class point {… public:
ОБЪЕКТНО- ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
Коломойцева Ирина Александровна, кафедра Прикладной математики и информатики (аудитория 4.15)
ЛИТЕРАТУРА
1) Буч Г. Объектно-ориентированное проектирование
спримерами применения. – М.: Конкорд, 1992. – 519 с.
2)Павловская Т.А., Щупак Ю.А. C++. Объектно- ориентированное программирование: Практикум. – СПб.: Питер, 2006. – 265 с.
3)Лафоре Р. Объектно-ориентированное программирование в С++. пер. с англ. А. Кузнецов и др. - 4-е изд. - СПб. : Питер, 2003. - 928с. : ил
4)Фейсон Т. Объектно-ориентированное программирование на Borland C++ 4.5 – К.: Диалектика, 1996. – 544 с.
ВВЕДЕНИЕ В ООП
Объектно-ориентированное программирование
– это подход к построению программ, где главной отправной точкой служит объект с его свойствами и поведением.
Основные принципы ООП были разработаны в языках Simula-67 (1967 – год создания) и Smalltalk.
Широкое распространение ООП получило вместе с созданием языка C++ Бьёрном Страуструпом (Bjarne Stroustrup) в начале 80-х годов XX века.
ООП оперирует с таким понятием как класс.
Класс – это тип данных, определяемый пользователем.
Класс представляет собой совокупность
данных, характеризующих объект этого класса, и операций, которые могут быть с этими данными выполнены.
Данные называют переменными-членами, полями или свойствами класса
Операции |
над данными |
называют |
функциями-членами или методами |
класса. |
Важное свойство класса – детали его реализации скрыты от пользователей класса интерфейсом.
Интерфейс класса – заголовки его методов.
Класс
данные (поля)
функции (методы)
Свойства ООП
-инкапсуляция;
-наследование;
-полиморфизм.
Инкапсуляция (encapsulation) – это соединение в одной структуре данных (классе) данных и операций над данными в сочетании со скрытием ненужной для использования этих данных информации.
Инкапсуляция:
-повышает степень уровня абстракции программы;
-позволяет изменить реализацию класса без модификации основной части программы, если интерфейс остался прежним;
-позволяет использовать класс в другом окружении и быть уверенным, что он не испортит не принадлежащие ему области памяти;
-создавать библиотеки классов для применения во многих программах.
Наследование означает такое соотношение между классами, когда один класс использует структурную или функциональную часть (свойства) одного или нескольких других классов (соответственно, имеем простое или множественное наследование).
Свойства повторно не описываются, что сокращает объем программы.
Класс, использующий данные или методы другого класса, называется производным или
подклассом, или субклассом.
Класс, предоставляющий свои данные и
методы другому классу, называется базовым
или надклассом, или суперклассом.
Иерархия классов представляется в виде древовидной структуры, в которой более общие классы располагаются ближе к корню, а более специализированные – на ветвях и листьях.
В C++ каждый класс может иметь сколько угодно потомков и предков.
Animal
mammals amphibia
Wolf |
|
Tiger |
|
Frog |
|
|
|
|
|
Полиморфизм – это свойство ООП, при котором одно и тоже имя может вызывать различные действия на этапе выполнения.
Примеры полиморфизма:
- перегрузка функций, когда из нескольких вариантов выбирается наиболее подходящая функция по соответствию ее прототипа передаваемым параметрам;
– использование шаблонов функций;
- использование механизма виртуальных методов.