Основные принципы ООП. Концепции

Введение

План:

1. Цели и задачи дисциплины.

2. История возникновения объектно-ориентированного программирования. Предпосылки развития.

3. Основные принципы ООП. Концепции.

Цели и задачи дисциплины.

Основная цель изучения дисциплины – формирование профессиональной компетентности будущих специалистов в области объектно-ориентированного программирования.

Задача дисциплины – формирование знаний об ООП и приобретение практических навыков разработки объектно-ориентированных программ с использованием языка программирования Pascal.

История возникновения объектно-ориентированного программирования. Предпосылки развития.

Первоначально программисты реализовывали свои проекты путем непосредственного написания кода. С возрастанием размера и сложности проектов становилось все яснее, что такой подход неудачен. Проблема заключалась в непропорциональном возрастании сложности процесса создания самих программ. Из-за сложности такие программы нередко содержат ошибки. Ошибки в программном обеспечении потенциально могут стать причиной материального ущерба, а иногда и угрожать жизни людей. В результате борьбы с проблемой сложности программного кода была выработана новая концепция программирования – объектно-ориентированное программирование (ООП).

Вместо того чтобы рассматривать программу как набор последовательно выполняемых инструкций, в ООП программа представляется в виде совокупности объектов, обладающих сходными свойствами и набором действий, которые можно с ними производить.

Применение объектно-ориентированного подхода делает программы понятнее, надежнее и проще в использовании.

Основные принципы ООП. Концепции.

Принципиальное различие между структурным и объектно-ориентированным подходом заключается в способе декомпозиции системы. В основе алгоритмиче­ской декомпозиции лежит разбиение по действиям — алгоритмам. Объектно-ори­ентиро­ван­ный подход использует объектную декомпозицию, при этом статиче­ская структура системы описывается в терминах объектов и связей между ними, а поведе­ние систе­мы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение объек­та реального мира.

Объект представляет собой особый опознаваемый предмет или сущность, имеющий четко определенное функциональное назначение в данной предметной области. Объект характеризуется состоянием, поведением, инди­видуальностью. Структура и поведение одинаковых объектов описывается в общем для них классе. Состояние объекта характеризуется перечнем всех его возможных свойств и текущими значениями. Поведение объекта характеризуется изменением его состояний в процессе взаимодействия с другими объ­ектами посредством передачи сообщения.

Класс - множество объектов, связанных общностью структуры и поведением.

Объектная модель имеет четыре главных принципа:

  • абстрагирование
  • ограничение доступа или инкапсуляция
  • модульность
  • иерархия.

Без любого из этих принципов модель не будет объектно-ориентированной. Кроме главных, имеется три дополнительных принципа, они полезны в объектной модели, но не обязательны:

  • типизация
  • параллелизм

· сохраняемость или устойчивость

Абстрагирование- это выделение таких существенных характеристик объекта, которые отличают его от всех других видов объектов и таким образом чётко определяются особенности данного объекта с точки зрения дальнейшего его рассмотрения. Абстрагирование позволяет отделить самые существенные особенности поведения от несущественных.

Инкапсуляция- это процесс разделения элементов объекта, определяющих его устройство и поведение.

Эти два принципа дополняют друг друга. Абстрагирование на­правлено на наблюдаемое поведение объекта, а инкапсуляция занимается внутрен­ним устройством. Практически это означает наличие двух частей в классе: интер­фейса и реализации. Интерфейс отражает внешнее поведение объекта. Внутренняя реализация описыва­ет представ­ление этой абстракции и механизмы достижения желаемого поведения объекта.

Модульность- это свойство системы, связанное с возможностью декомпозиции на ряд внутренне связанных, но слабо связанных между собой модулей. Модульность - это разделение программы на раздельно компилируемые фраг­менты, имеющие между собой средства сообщения.

Иерархия- упорядоченная система абстракций. Прин­цип наследования позволяет упростить выражения абстракции, делая проект менее громоздким и более выразительным.

Наследование - это такая иерархичность абстракций, в которой подклассы наследуют строение от одного или нескольких классов. В подклассе, кроме того, мо­гут быть определены дополнительные атрибуты и методы. Классы отражают наи­более общие, а подклассы более специализированные абстракции. Различают слу­чаи простого и множественного наследования.

Наши рекомендации