Содержание
- 2. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ Объектно-ориентированное программирование (ООП) представляет собой следующий этап развития современных концепций построения языков программирования.
- 3. Рис.1. Процедурно- и объектно-ориентированные парадигмы программирования. Незаполненные фигуры представляют данные, а фигуры с заливкой—процедуры 8 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ
- 4. Введение нового типа данных потребовало пересмотреть некоторые концепции языка Паскаль: ввести новые понятия, как, например, инкапсуляция,
- 5. Наследование позволяет создавать иерархию объектов, начиная с некоторого простого первоначального (предка) и кончая более сложными, но
- 6. Полиморфизм означает, что для различных родственных объектов можно задать единый класс действий (например, перемещение по экрану
- 7. 8 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 6 Гради Буч: «Объектно-ориентированное программирование (ООП) – это методология программирования, которая основана на
- 8. 8 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 7 сравнительно простая возможность внесения изменений в программу без изменения уже написанных частей,
- 9. 8 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 8 Однако следует иметь в виду, что ООП обладает и рядом недостатков и
- 10. Гради Буч выделяет две разновидности декомпозиции: алгоритмическую (поддерживаемую структурными методами) и объектно-ориентированную, основанную на разделении по
- 11. Объектная декомпозиция Объектной декомпозицией называют процесс представления предметной области задачи в виде совокупности функциональных элементов (объектов),
- 12. Объектная декомпозиция Алан Кей в свое время вывел пять основных черт языка Smalltalk — первого удачного
- 13. Объект характеризуется как совокупностью всех своих свойств ( например, для животных – это наличие головы, хвоста,
- 14. Поведение Для каждого объекта существует определенный набор действий, которые с ним можно произвести. Например, возможные действия
- 15. Поведение (behavior) - действия и реакции объекта, выраженные в терминах передачи сообщений и изменения состояния; видимая
- 16. В процессе решения задачи объект, получив некоторое сообщение, выполняет заранее определенные действия, например, может изменить собственное
- 17. Классы и объекты-переменные В программе для представления объектов предметной области используют переменные специальных типов - классы.
- 18. 8 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 17 Рис.2 Соответствие объектов предметной области, классам и объектам-переменным
- 19. Переменные типа класса также обычно называют объектами. На рис. 2 показана связь объектов предметной области, классов
- 20. Как нам теперь использовать объекты в языках, использующих различные объектные модели? C++: если у нас есть
- 21. Прежде чем использовать объект, вы должны вызвать "new" для выделения под него памяти. Конечно, вы можете
- 22. Наследование Наследование (inheritance) - это отношение между классами, при котором класс использует структуру или поведение другого
- 23. 8 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 22 Рис.3 Одиночное наследование В рассмотренном примере применено одиночное наследование. Некоторый класс также
- 24. Рис.4 Иерархическая система классов окон 8 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 23
- 25. Рис.5 Гетерархическая система классов окон 8 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 24
- 26. 8 ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 25 Класс-родитель Класс-потомок Класс-родитель Класс-потомок 1 Класс-потомок 2 Рис. 6 Примеры иерархий классов
- 27. Методы построения классов Одним из наиболее значимых достоинств ООП является то, что большинство классов для реализации
- 28. При наследовании поля и методы родительского класса повторно не определяют, специальный механизм наследования позволяет использовать эти
- 29. Инкапсуляция (encapsulation) - это сокрытие реализации класса и отделение его внутреннего представления от внешнего (интерфейса). При
- 30. Инкапсуляция позволяет в максимальной степени изолировать объект от внешнего окружения. Она существенно повышает надёжность разрабатываемых программ,
- 31. Полиморфизм Этот принцип неразрывно связан с наследованием и гласит, что каждый класс наследник может обладать не
- 32. Полиморфизм – это свойство родственных объектов (т.е. объектов, имеющих одного общего родителя) решать схожие по смыслу
- 33. Создание объектов В Турбо Паскале для создания объектов используется три зарезервированных слова: object, constructor, destructor и
- 34. Пример. Требуется разработать программу, которая создаёт на экране ряд графических изображений (точку, окружность, линию, квадрат) и
- 35. Для данной учебной задачи создадим объект-родитель TGraphObject, в рамках которого инкапсулированы поля и методы, общие для
- 36. Чтобы описать все свойства объекта, необходимо раскрыть содержимое объектных методов, т.е. описать соответствующие процедуры и функции.
- 37. Procedure TGraphObj.Show; begin Draw (Color) end; Procedure TGraphObj.Hide; begin Draw (GetBkColor) end; Procedure TGraphObj.MoveTo; begin Hide;
- 38. Создадим простейшего потомка от TGraphObj — объект TРoint, с помощью которого будет визуализироваться и перемещаться точка.
- 39. В новом объекте TРoint можно использовать любые методы объекта-родителя TGraphObj. Например, вызвать метод MoveTo, чтобы переместить
- 40. Директива же public просто отменяет действие директивы private. То есть все последующие поля и методы будут
- 41. Объекты, динамическая память и деструкторы Экземпляры объектов можно размещать в динамической памяти (куче). Работа с кучей
- 42. Для работы с экземпляром объекта, расположенного в куче, необходимо проводить (как обычно) операцию разыменовывания указателя, например:
- 43. При работе с динамическими объектами надо очень серьезно подходить к освобождению памяти. Ведь и сам объект
- 44. В связи с этим синтаксис процедуры Dispose тоже расширен и позволяет вызывать деструктор объекта до его
- 46. Скачать презентацию