Основы объектно-ориентированного программирования: Методические указания к выполнению лабораторной работы по дисциплине «Информатика», страница 3

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

Структуру и поведение схожих объектов определяет общий для них класс. Класс – это описание некоего множества объектов, имеющих общую структуру и общее поведение. Класс можно сравнить с чертежом, согласно которому создаются объекты. Термины «экземпляр класса» и «объект» взаимозаменяемы.

Объектно-ориентированный подход в программировании подразумевает то, что один класс может повторять структуру и поведение другого класса. Такое отношение между классами называется наследованием.

Класс, структура и поведение которого наследуются, называется суперклассом, а производный от суперкласса класс называется подклассом. Подкласс обычно расширяет или ограничивает существующую структуру и поведение своего суперкласса. Таким образом, существует возможность организации иерархии классов от общего к частному. Например, от общего класса «Хамелеоны», к классу «Пестрый горный хамелеон». То есть класс «Пестрый горный хамелеон» будет наследовать свойства и поведение  класса «Хамелеоны», поскольку различным хамелеонам присущи некоторые одинаковые характеристики. При этом пестрые горные хамелеоны будут иметь дополнительные свойства и методы, которые отличают их от прочих.

Еще одним основополагающим понятием ООП является полиморфизм. Полиморфизм представляет собой способность различных объектов выполнять одно и то же действие по-своему. Например, действие «бежать» свойственно большинству животных. Однако каждое из них (лев, слон, крокодил, хамелеон) выполняет это действие различным образом. Суть полиморфизма состоит в присваивании действию одного имени, которое затем совместно используется вниз и вверх по иерархии объектов, причем каждый объект иерархии выполняет это действие способом, именно ему подходящим.


2.  Объектно-ориентированный подход и Delphi

Далее будет описано использование объектно-ориентированного подхода к разработке проектов приложений в среде Delphi. Эта среда была выбрана потому, что в ней используется популярный язык Object Pascal.

Язык программирования Object Pascal является объектно-ориентированным расширением языка Pascal, который изучается практически во всех средних и высших учебных заведениях. Следовательно, пользователю, приступающему к разработке проектов в Delphi, будет достаточно просто разобраться в приведенных далее примерах.

Стоит заметить, что на данный момент, язык программирования, используемый в Delphi (начиная с версии 7.0) носит такое же название, как и среда разработки, но в ранних версиях он назывался Object Pascal.

Класс в языке Object Pascal имеет в своем составе переменные,  свойства, функции и процедуры.

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

В отличие от полей, которые являются внутренними, скрытыми атрибутами объекта, его свойства представляют собой внешние проявления поведения. Приведем пример. Вновь начнем кратковременно физически воздействовать на объект «Хамелеон» объектом «Палка». В это время внутри объекта «Хамелеон» могут происходить незаметные для внешнего наблюдателя изменения значений каких-либо полей. Можно сказать, что «Хамелеон» мысленно выругался, разозлился, что в итоге привело к изменению его свойства «Цвет». Читать мысли, то есть поля объекта «Хамелеон» мы не можем, а вот наблюдать за изменением его свойства «Цвет» вполне. То есть именно через свойства, а не через поля мы можем наблюдать изменение состояния объектов.