Объектно ориентированное программирование pascal
Объектно-ориентированное программирование (ООП)
Что это такое?
На этой странице размещены готовые проекты, которые разбираются в главе 7 «Объектно-ориентированное программирование» учебника «Информатика. Углублённый уровень» для 11 класса К.Ю. Полякова и Е.А. Еремина.
Авторы будут благодарны за отзывы и конструктивную критику по поводу содержания и оформления представленных материалов. Если вы нашли неточность или у вас есть что сказать по существу дела, можно отправить сообщение прямо с этого сайта.
Что такое ООП?
Объектно-ориентированное программирование (ООП) — это подход к написанию сложных программ, который позволяет выполнить разбиение задачи на части (декомпозицию) не по алгоритмам (подзадачам), как в классическом процедурном программировании, а по объектам, что ближе к человеческому восприятию.
Все объекты, используемые в программе, разбиваются на классы, обладающие общими признаками. Внутреннее устройство, данные объекта и методы работы с ними определяются классом, к которому он относится.
Для понимания ООП важны четыре основных принципа:
- абстракция — выделение существенных характеристик объекта, отличающих его от других объектов;
- инкапсуляция — скрытие внутреннего устройства объектов от других объектов и объединение данных и методов работы с ними в едином понятии «объект»;
- наследование свойств и методов, при котором объекты-наследники автоматически приобретают все свойства и методы, имеющиеся у объектов родительского (базового) класса;
- полиморфизм, состоящий в том, что объекты разных классов могут по-разному выполнять один и тот же метод.
Проекты по ООП
В учебнике для 11 класса рассмотрено 8 проектных работ, которые учащиеся должны выполнить самостоятельно, используя материал параграфов 47-55.
Для изучения ООП в учебнике предлагается использовать объектную версию языка Паскаль, которая реализована, с некоторыми незначительными отличиями, в средах разработки Free Pascal (Lazarus), Delphi и PascalABC.NET. Кроме того, с этой страницы можно также скачать версии проектов на языках C++ и C# (остальные материалы для изучающих C и С++ см. на отдельной странице).
- Проект 1. Дорога. Рассматривается модель, включающая объект-дорогу и несколько объектов-автомашин (§ 47-48). Последовательность выполнения проекта:
- Начальный вариант (см. § 48).
- На экран выводятся координаты машин.
- На экране показано движение автомашин.
- Добавлен светофор, который переключает цвет по программе.
- Автомашины останавливаются перед красным сигналом светофора.
- Проект 2. Логические элементы. (§ 49-50). Последовательность выполнения проекта:
- Начальный вариант (см. § 50).
- Добавлены классы TXor, TNotAnd, TNotOr. Описание классов выделено в модуль LogElement.
- Собран триггер на элементах TNotOr.
- Собран триггер на элементах TNotAnd.
- Cобран шифратор «4 в 2».
- Cобран дешифратор «2 в 4».
- Проект 3. Форма и её свойства. (§ 51-52).
- Проект 4. Компоненты. (§ 53). Последовательность выполнения проекта:
- Начальный вариант (см. § 53).
- Если рисунок меньше, чем свободная область, он центрируется в окне.
- Проект 5. Ввод данных. (§ 53). Последовательность выполнения проекта:
- Начальный вариант (см. § 54)
- Сделан автоматчиеский перевод шестнадцатеричного кода цвета в RGB.
- Проект 6. Новый компонент. (§ 54). Последовательность выполнения проекта:
- Начальный вариант (см. § 54)
- Компонент установлен в палитру компонентов.
- Проект 7. Вычисление арифметических выражений. (§ 55). Последовательность выполнения проекта:
- Начальный вариант (см. § 55)
- Работа с вещественными числами. Обработка ошибок.
- Вычисление выражений со скобками.
- Проект 8. Калькулятор. (самостоятельная работа).
В архиве, ссылка на который приведена ниже, представлены варианты программ из учебника для сред разработки Free Pascal (Lazarus), Delphi и PascalABC.NET. Работоспособность программ проверялась на следующих версиях сред программирования:
Новейшие версии первых трёх продуктов можно бесплатно скачать по ссылкам, приведённым выше.
Методические рекомендации по объектно-ориентированному программированию на Pascal ABC
Как организовать дистанционное обучение во время карантина?
Помогает проект «Инфоурок»
Методические рекомендации по проведению практических работ.
После изучения тем связанных с алгоритмизацией и программированием на языке Pascal (учебник И.Г. Семакина 9 класс), логически и методически правильным будет изучение основ объектно-ориентированного программирования. Здесь встает вопрос, в какую сторону двинуться дальше. Вариантов здесь достаточно много:
Delphi – изумительная и богатейшая по своим возможностям система программирования, правда платная,
Lazarus – не чем не хуже Delphi , бесплатная, кроссплатформенная,
даже Visual Basic , переход на этот язык обычно не вызывает затруднений у учащихся.
Pascal ABC — простая система, единственным недостатком, которой является отсутствие возможности получать исполняемые (. exe ) файлы. Этот недостаток был решен в Pascal ABC . NET . В последних версиях этого языка появился визуальный редактор форм.
Здесь выбор полностью остается за учителем. Я выбрал Pascal AB С, хотя долгое время работал с системой программирования Lazarus . Pascal ABC , в данном случае, более прост для понимания. Ведь в мою задачу не входит подготовка профессиональных программистов, а для общего ознакомления с основными принципами объектно-ориентированного программирования Pascal ABC то, что нужно.
Для этих занятий мною были разработаны практические работы.
Калькулятор с флажками.
Калькулятор с выпадающим списком
Движение при помощи таймера
Простейший текстовый редактор. Диалоги.
Всего на эту тему у меня уходит 9 уроков.
Теоретическая часть – 1 урок.
Практические работы 2-7 уроки.
Создание собственного проекта -2 урока.
Многие ученики помимо проекта, разработанного на уроках, делают еще один проект дома. За что получают дополнительную оценку. Ученики у которых не получается программировать самостоятельно, могут выполнить проект на основе моих заготовок. (См. файл Проекты в ООП. doc ). Для изучения данной темы я использую презентацию собственной разработки. (См. файл Практические работы ООП. ppt )
Урок объяснения нового материала.
В начале урока я раздаю печатный материал (таблицы) (См. файл Раздаточный материал. doc ) который учащиеся вклеивают в тетрадь, в качестве конспекта. Это экономит достаточно много времени. Дальше идет объяснение материала по слайдам.
Слайд 1.. Показан интерфейс системы программирования Pascal ABC . Вводятся понятия форма, инспектор объектов, компоненты.
Слайд 2. Таблица, в которой показаны визуальные компоненты.
Слайд 3. Таблица, в которой показаны визуальные компоненты.
Слайд 4. Таблица, в которой показаны основные не визуальные компоненты.
Слайд 5. Таблица, в которой показаны некоторые основные свойства компонентов Pascal ABC .
Слайд 6. Показаны два способа изменения свойств объектов. Первый, программно, при помощи операции присваивания. Второй при помощи инспектора объектов.
Слайд 7. Показаны способы ввода информации из компонента поле ввода в переменные различного типа ( Intrger , Real , String ) с использованием функций ( StrToInt , StrToFloat ).
Слайд 8. Показаны способы вывода информации из переменных различного типа ( Intrger , Real , String ) в компонент поле ввода при помощи функций ( IntToStr , FloatToStr )
Практическая работа «Простой калькулятор»
Первая часть урока – объяснение хода выполнения практической работы.
Слайд 9. Размещение и настройка компонентов кнопки.
Слайд 10. Размещение и настройка компонентов поле ввода.
Слайд 11. Показано создание процедуры — события закрытия формы.
Слайд 12. Показано создание процедуры – события происходящего при нажатии кнопки «+». Показан текст процедуры.
Далее учащиеся выполняют практическую работу по опорному конспекту (Здесь и далее см файл Практические работы по ООП. doc ).
Практическая работа «Калькулятор с флажками»
Первая часть урока – объяснение хода выполнения практической работы.
Слайд 13. Размещение и настройка компонентов кнопки и флажки.
Слайд 14. Создание процедуры – события при нажатии кнопки «Вычислить». В данной процедуре используется четыре условных оператора в которых проверяется в каком состоянии находится флажок. Здесь конечно правильнее было бы использовать компонент переключатель, так как пользователь может включить два флажка, и программа будет работать. Но я использую компонент флажок, для того что бы сильным ученикам была возможность потренироваться в программировании и написать фрагмент программы проверяющий сколько флажков включено. Обычно считается количество включенных флажков, и если их больше 1 то выдается сообщение об ошибке.
Далее учащиеся выполняют практическую работу по опорному конспекту.
Практическая работа «Калькулятор с выпадающим списком»
Первая часть урока – объяснение хода выполнения практической работы.
Слайд 15. Размещение и настройка компонентов кнопки и выпадающий список.
Слайд 16. Показан алгоритм добавления строк в выпадающий список.
Слайд 17. Создание процедуры – события при нажатии кнопки «Вычислить». В данной процедуре используется четыре условных оператора в которых проверяется какая строка выпадающего списка выбрана пользователем.
Далее учащиеся выполняют практическую работу по опорному конспекту.
Практическая работа «Калькулятор с выпадающим списком»
Первая часть урока – объяснение хода выполнения практической работы.
Слайд 18. Размещение и настройка компонентов кнопки и таймер.
Слайд 19. Скриншот, на котором показано где в Pascal ABC размещаются не визуальные компоненты.
Слайд 20. Показано размещение на форме компонента геометрически фигуры и настройка вида геометрической фигуры.
Слайд 21. Создание процедур – событий управления таймером. Включение и выключение движения фигуры.
Слайд 22. Показано создание процедуры – события происходящего при включенном таймере. Собственно в ней происходит изменение координаты левого угла фигуры на некоторую величину d . И изменение направления движения при достижении края формы.
Слайд 23. Показан алгоритм создания события происходящего при активации формы.
Далее учащиеся выполняют практическую работу по опорному конспекту.
Практическая работа «Меню»
Первая часть урока – объяснение хода выполнения практической работы.
Слайд 24. Размещение и настройка компонентов меню и панель для рисования.
Слайд 25. Показано размещение не визуального компонента меню
Слайд 26. Показан алгоритм создания горизонтальных и вертикальных пунктов меню.
Слайд 27. Показано создание процедуры – события, которое будет происходить при выборе определенного пункта меню пользователем.
Далее учащиеся выполняют практическую работу по опорному конспекту.
Практическая работа «Текстовый редактор. Диалоги»
Первая часть урока – объяснение хода выполнения практической работы.
Слайд 28. Размещение и настройка кнопок и многострочного текстового поля.
Слайд 29. Показано размещение не визуальных компонентов диалоги: открыть, сохранить, выбор цвета.
Слайд 30. Показано создание процедуры – события, которое будет происходить при нажатии кнопки «Открыть»
Слайд 31. Показано создание процедуры – события, которое будет происходить при нажатии кнопки «Сохранить»
Слайд 32. Показано создание процедуры – события, которое будет происходить при нажатии кнопки «Цвет»
Далее учащиеся выполняют практическую работу по опорному конспекту.
Практическая работа «Создание собственного проекта»
В первой части урока я показываю небольшую презентацию «Современные среды разработки программ». Для того, что бы показать, что большинство современных средств создания программ имеют общую для всех объектно-ориентированную идеологию. Как правило учащиеся узнают на скриншотах знакомые компоненты их свойства и визуальное изображение компонентов.
Далее учащиеся приступают к созданию собственного мини-проекта. Те, кто самостоятельно не могут определиться с работой, выполняют задания предложенные мной. (См. файл Проекты ООП. doc ).
Литературы по программированию Delphi / Lazarus сейчас огромное количество, как и интернет ресурсов. Кое — что из книг:
Delphi 2007. Алгоритмы и программы: О. В. Чеснокова — Санкт-Петербург, НТ Пресс, 2008 г.
Основы программирования в интегрированной среде DELPHI: А. Желонкин — Москва, Бином. Лаборатория знаний, 2004 г.
Программирование в Turbo Pascal. Переход к Delphi: Ю. А. Шпак — Москва, МК-Пресс, 2006 г.
Занимательное программирование: М. Мозговой – СПб, Питер, 2005 г.
14. Объектно-ориентированное программирование в Turbo Pascal 7
Объектно-ориентированное программирование (ООП) представляет собой новый этап развития современных концепций построения языков программирования. Здесь получили дальнейшее развитие принципы структурного программирования — структуризация программ и данных, модульность и т. д.
В основе ООП лежит понятие объекта (object), сочетающего в себе данные и действия над ними. Объект в некотором роде похож на стандартный тип-запись (record), но включает в себя не только поля данных, но также и подпрограммы для обработки этих данных, называемые методами. Таким образом, в объекте сосредоточены его свойства и поведение. Идеи создания нового типа-объект были уже заложены при введении процедурного типа, отождествляющего между собой данные и действия над ними. Фактически тип-объект включает в себя помимо данных элементы процедурных типов, правда, несколько иначе оформленные и с расширенным набором особенностей, о которых будет сказано ниже.
Введение нового типа данных потребовало пересмотреть некоторые концепции языка Паскаль: ввести новые понятия, как, например, инкапсуляция, наследование, полиморфизм и виртуальность, новые зарезервированные слова (constructor, destructor, inherited, object, private, public, virtual), изменить уже существующие подпрограммы (подпрограммы New и Dispose).
ООП характеризуется тремя основными свойствами: инкапсуляция (encapsulation), наследование (inheritance) и полиморфизм (polymorphism).
Инкапсуляция означает упоминавшееся выше объединение в одном объекте данных и действий над ними. Примером может служить перемещаемый по экрану отрезок, определяемый координатами своих концов (данные), и процедурой, обеспечивающей это перемещение (метод).
Наследование позволяет создавать иерархию объектов, начиная с некоторого простого первоначального (предка) и кончая более сложными, но включающими (наследующими) свойства предшествующих элементов (потомки). Эта иерархия в общем случае может иметь довольно сложную древовидную структуру. Каждый потомок несет в себе характеристики своего предка (содержит те же данные и методы), а также обладает собственными характеристиками. При этом наследуемые данные и методы описывать у потомка нет необходимости. В качестве такой иерархии можно рассмотреть точку на экране дисплея, задаваемую своими координатами (предок), отрезок, задаваемый координатами двух точек — его концов (потомок точки), перемещаемый отрезок, задаваемый координатами своих концов и процедурой, обеспечивающей его перемещение (потомок неперемещаемого отрезка) и т. д.
Полиморфизм означает что для различных родственных объектов можно задать единый класс действий (например, перемещение по экрану любой геометрической фигуры). Затем для каждого конкретного объекта составляется своя подпрограмма, выполняющая это действие непосредственно для данного объекта (естественно, что перемещение по экрану точки отличается от перемещения отрезка, а перемещение отрезка, в свою очередь, отличается от перемещения многоугольника и т. д.), причем все эти подпрограммы могут иметь одно и то же имя. Когда потребуется перемещать конкретную фигуру, будет выбрана из всего класса соответствующая подпрограмма.
Может показаться, что сочетание в одном объекте параметров и действий над ними является искусственным объединением. Однако окружающие нас объекты как раз и обладают таким свойством. Взять, например, компьютер. Он состоит из отдельных частей (процессор, монитор, клавиатура и т. д.) и характеризуется рядом параметров (емкость памяти, разрешающая способность дисплея, емкость жесткого диска и т. д.). Все это представляет собой данные рассматриваемого объекта. Кроме этого компьютер может выполнять или над ним можно совершать определенные действия (вставить дискету, поместить точку на экран и г. д.). Так что, действительно, объект — компьютер представляет собой сочетание параметров и действий над ними.
Таким образом, задаваемый объект позволяет локализовать в одном месте его свойства и сделать его в некотором смысле замкнутым по отношению к другим объектам и элементам программы, что, конечно, может в ряде случаев упростить его программирование.
ООП обладает рядом преимуществ при создании больших программ. В частности, к ним можно отнести:
- использование более естественных с точки зрения повседневной практики понятий, простота введения новых понятий;
- некоторое сокращение размера программ за счет того, что повторяющиеся (наследуемые) свойства и действия можно не описывать многократно, как это делается при использовании подпрограмм; кроме того, использование динамических объектов позволяет более эффективно использовать оперативную память;
- возможность создания библиотеки объектов;
- сравнительно простая возможность внесения изменений в программу без изменения уже написанных частей, а в ряде случаев и без перекомпиляции этих написанных и уже скомпилированных частей, используя свойства наследования и полиморфизма;
- возможность написания подпрограмм с различными наборами формальных параметров, но имеющих одно и то же имя, используя свойство полиморфизма;
- более четкая локализация свойств и поведения объекта в одном месте (используется свойство инкапсуляции), позволяющая проще разбираться со структурой программы, отлаживать ее, находить ошибки;
- возможность разделения доступа к различным объектам программы и т. д.
Однако следует иметь в виду, что ООП обладает и рядом недостатков и эффективно не во всех случаях. Как правило, использование ООП приводит к уменьшению быстродействия программы, особенно в тех случаях, когда используются виртуальные методы (см. п. 14.3). Неэффективно ООП применительно к небольшим программам, поэтому его можно рекомендовать при создании больших программ, а лучше даже класса программ (как, например, создание интерактивных программ с использованием Turbo Vision, где основой является ООП). Можно, по-видимому, даже сказать, что ООП скорее не упрощает саму программу, а упрощает технологию ее создания.
Объектно ориентированное программирование pascal
Главная / Раздел 5
Объектно-ориентированное программирование.
Классы. Объекты
Исторически сложилось так, что программирование возникло и развивалось как процедурное (структурное) программирвание. Процедурное программирование предполагает, что основой программы является алгоритм, процедура обработки данных. Объектно-ориентированное программирование (ООП) представляет собой новый этап развития современных концепций построения языков программирования. Многие понятия объектно-ориентированного программирования выглядят достаточно непривычно для программистов не сталкивавшихся с ними ранее. В основе ООП лежит понятие объекта, сочетающего в себе данные и действия над ними. В настоящее время объектно-ориентированная технология программирования получила широкое распространения. Существуют языки программирования, для которых ООП является методологической основой, — так называемые чистые объектно-ориентированные языки. Кроме того, к настоящему времени многие распространённые языки, первоначально рассчитанные на традиционный подход к программированию, содержат ряд объектно-ориентированных расширений. В язык программирования Turbo Pascal объектно-ориентированное расширение было внедрено фирмой Borland начиная с версии 5.5.
Объектовые типы. Классы.
Для использования объектов в разделе объявления типов необходимо объявить объектовый тип, который в объектно-ориентированной терминологии чаще называют классом. С формальной точки зрения, объектовые типы (классы) в языке Turbo Pascal очень похожи на комбинированные типы (записи). Объектовые типы (классы) также являются составными типами, элементы (поля) которых могут иметь любой тип. Так, простейший пример объектового типа выглядит следущим образом:
Здесь для формирования структуры используется служебное слово object, а содержимым объектового типа являтся два поля целого типа и одно — булевого типа. (Назначением такой структуры может быть хранение информации о положении некоторой точки на экране дисплея и о видимости этой точки).
В дальнейшем введённый таким образом тип Point (или любой другой класс) можно использовать в программе обычным образом: определять переменные этого типа (как статически — посредством описателя var, — так и динамически, создавая экземпляр переменной этого типа с помощю стандартной процедуры New), работать с полями и т.д.
Важнейшим и радикальным отличием от обычных комбинированных типов является возможность, наряду с полями, задавать в объектовом типе подпрограммы — процедуры и функции. В этом и заключается одна из основных идей объектно-ориентированного подхода к программированию: предполагается, что объект содержит не только информацию (в предыдущем примере — координаты точки и признак её «видимости»), но и правила работы с этой информацией, оформленные в виде выполняемых фрагментов. Такими правилами могут быть, например, операция создания точки (установка значений координат), а также операции «включения» и «выключения» точки и перемещения её в другое место экрана. Подпрограммы, определённые в объектовом типе, называются методами объекта (methods).
Технически определение подпрограмм в объектовых типах делается так: непосредственно в объектовом типе задаются только заголовки подпрограмм-методов, а полные их описания должны быть заданы отдельно, причём имя подпрограммы-метода формируется из имени объектового типа — «хозяина», символа «точка» и имени подпрограммы, например:
Такое разделение диктуется, во-первых, необходимостью достижения большей наглядности определения объектового типа; во-вторых, становится возможным определение таких типов как интерфейсных элементов модуля. В этом случае полные описания подпрограмм-методов могут быть размещены в разделе реализации модуля. Несмотря на выделение методов из определения объектового типа, в телах методов считаются доступными идентификаторы полей этого объектового типа (заметим, что методы объекта должны быть заданы ПОСЛЕ указания всех его полей). Таким образом, объединение в одном понятии информации о некотором реальном объекте-прототипе (в примере — точки на экране дисплея) и операций над ним делает объектовый тип замкнутой самодостаточной сущностью, содержащей все требуемые знания о конкретном элементе прикладной области. Имея вышеприведённое описание, можно определять в программе экземпляры объектов, например:
и в дальнейшем оперировать с этим экземпляром посредством его методов:
Оператор присоединения with
Для объектовых типов так же, как и для записей, допускается использование оператора присоединения.
Создавая программу с использованием объектно-ориентированных понятий, программист может конструировать её не в виде бессистемной совокупности отдельно заданных данных и подпрограмм, а как коллектив независимых объектов с полностью определённым поведением.
Некоторые особенности использования ООП.
Как уже было сказано, методы, определённые в объектовом типе, имеют доступ ко всем полям этого типа. Помимо этого, можно обращаться к полям непосредственно, используя обычную точечную нотацию (обращение, как к полям записи). Однако это считается отступлением от объектно-ориентированного стиля, согласно которому все действия с информацией, заданной в объектовом типе, осуществляются посредством только его методов.
Объединение в одном объекте данных (параметров) и их методов (действий над ними), в объектно-ориентированном программировании называется инкапсуляцией. Инкапсуляция — первое основное свойство объекта.
В качестве примера рассмотрим программу, в которой применяется описанный выше класс Point. Светящаяся точка перемещается по экрану с помощью клавиш со стрелками. Клавишей F1 включается и выключается её видимость.
- Что называют объектовым типом (классом)?
- Что называют объектом?
- Что такое инкапсуляция?
- Как объявляются объектовые типы (классы) в Turbo Pascal?
- Что называют методами объекта?
Задания для самостоятельного выполнения.
- Напишите программу с объектом треугольник, передвигающимся из левой части экрана в правую?
- Напишите программу с объектом «пульсирующая» окружность?
- Напишите прогармму с объектом «прямоугольник», размеры которого можно изменять в ходе работы программы.
- Напишите программу с объектом «линия», передвигающимя с нижней части экрана в верхнюю часть экрана.
- Напишите программу с объектом «бегущая строка», содержимое которой можно изменять в ходе работы программы.
лабы по информатике, егэ
лабораторные работы и задачи по программированию и информатике, егэ по информатике
Объектно-ориентированное программирование (как расшифровывается ООП) – это, прежде всего, парадигма программирования.
Парадигма программирования определяет то, как программист видит выполнение программы.
Так, для парадигмы ООП характерно, что программист рассматривает программу в виде набора взаимодействующих объектов, в то время как, например, в функциональном программировании программа представляется в виде последовательности вычисления функций. Процедурное программирование или, как его еще правильно называют, классическое операциональное, подразумевает написание алгоритма для решения задачи; при этом ожидаемые свойства конечного результата не описываются и не указываются. Структурное программирование в основном придерживается тех же принципов, что и процедурное, лишь немного дополняя их полезными приемами.
Парадигмы непроцедурного программирования, к которым можно отнести объектно-ориентированную парадигму, имеют совершенно другие идеи.
Определение Гради Буча гласит: “Объектно-ориентированное программирование – это методология программирования, которая основана на представлении программы в виде совокупности объектов, каждый из которых является реализацией определенного класса (типа особого вида), а классы образуют иерархию на принципах наследуемости”.
Структурное и объектно-ориентированное программирование строятся на таком научном методе как декомпозиция — метод, который использует структуру задачи и позволяет разбить решение общей большой задачи на решение последовательности меньших задач. Декомпозиция ООП происходит не по алгоритмам, а по объектам, использующимся при решении задачи. Данная декомпозиция уменьшает размер программных систем благодаря повторному использованию общих механизмов. Известно, что системы визуального программирования или системы, построенные на принципах объектно-ориентированного программирования, являются более гибкими и легче эволюционируют со временем.
История развития ООП берет свое начало в конце 60-х годов. Первым объектно-ориентированным языком был язык программирования Simula, созданный в компьютерном центре в Норвегии. Язык предназначался для моделирования ситуаций реального мира. Особенностью Simula было то, что программа, написанная на языке, была организована по объектам программирования. Объекты имели инструкции, называемые методами, и данные, которые назывались переменными; методы и данные определяли поведение объекта. В процессе моделирования объект вел себя согласно своему стандартному поведению и, в случае необходимости, изменял данные для отражения влияния назначенного ему действия.
Сегодня существует достаточное количество объектно-ориентированных языков программирования, наиболее популярными из которых в настоящее время являются C++, Delphi, Java, Visual Basic, Flash. Но, кроме того, многие языки, которые принято причислять к процедурной парадигме, тоже обладают свойствами ООП, имея возможность работать с объектами. Так, объектно-ориентированное программирование в C — это большой раздел программирования на данном языке, то же самое касается ООП в python и многих других структурных языках.
Говоря об ООП, часто всплывает еще одно определение — визуальное программирование. Оно дополнительно предоставляет широкие возможности использования прототипов объектов, которые определяются как классы объектов.
События. Во многих средах визуального программирования реализована характеристика (помимо инкапсуляции, полиморфизма и наследования) объекта – событие. Событиями в объектно-ориентированном программировании называется возможность обработки так называемых сообщений (или событий), получаемых от операционной системы Windows или самой программы. Данный принцип характерен для всех компонентов среды, которые обрабатывают различные события, возникающие в процессе выполнения программы. По сути, событие — это некоторое действие, которое активизирует стандартную реакцию объекта. Событием может рассматриваться, например, щелчок по кнопке мыши, наведение курсора мыши на пункт меню, открытие вкладки и т.п. Очередность выполнения тех или иных действий определяется как раз таки событиями, возникающими в системе, и реакцией на них объектов.
Классы и объекты в ООП — различные понятия. Понятие класса в ООП – это тип данных (такой же как, например, Real или String), а объект – конкретный экземпляр класса (его копия), хранящийся в памяти компьютера как переменная соответствующего типа.
Класс является структурным типом данных. Класс включает описание полей данных, а также процедур и функций, которые работают с этими полями данных. Метод ООП – это и есть такие процедуры и функции применительно к классам.
Классы имеют поля (как тип данных запись — record), свойства, которые похожи на поля, но имеют дополнительные описатели, определяющие механизмы записи и считывания данных и методы — подпрограммы, которые направленны на изменение полей и свойств класса.
Основные принципы ООП
Принципы объектно-ориентированного программирования помимо обработки событий – это инкапсуляция, наследование, подклассы и полиморфизм. Они особенно полезны и необходимы при разработке тиражируемых и простых в сопровождении приложений.
Объект объединяет в себе методы и свойства, которые не могут существовать отдельно от него. Поэтому если объект удаляется, то удаляются его свойства и связанные с ним методы. При копировании происходит то же самое: объект копируется как единое целое. Инкапсуляция ООП — это и есть описанная характеристика.
Принцип наследования ООП и подклассы
Абсолютно все объекты создаются на основе классов, при это они наследуют свойства и методы этих классов. В свою очередь классы могут создаваться на основе других классов (родителей), тогда такие классы называют подклассами (потомки). Подклассы наследуют все свойства и методы родительского класса. Кроме того для подкласса или класса-потомка можно определить новые, свои собственные, свойства и методы, а также изменять методы класса-родителя. Изменение свойств и методов родительского класса отслеживается в подклассах, созданных на основе этого класса, а также в объектах, созданных на основе подклассов. В этом и заключается наследование ООП.
Полиморфизм ООП
В объектно-ориентированном программировании полиморфизм характеризуется как взаимозаменяемость объектов с одинаковым интерфейсом. Это можно объяснить так: класс-потомок наследует экземпляры методов класса-родителя, но выполнение этих методов может происходить другим образом, соответствующим специфике класса-потомка, то есть модифицированным.
То есть, если в процедурном программировании имя процедуры или функции однозначно определяет выполняемый код, относящейся к данной процедуре или функции, то в объектно-ориентированном программировании можно использовать одни и те же имена методов для выполнения разных действий. То есть результат выполнения одного и того же метода зависит от типа объекта, к которому применяется данный метод.
На сайте представлена частичная теория объектно-ориентированного программирования для начинающих и ООП примеры решения задач. ООП уроки сайта представляют собой подробные алгоритмы выполнения поставленной задачи. На основе выполнения данных лабораторных работ учащийся сможет в дальнейшем самостоятельно решать другие аналогичные задачи.
Желаем Вам легкого и интересного изучения объектно-ориентированного программирования!