1. Понятие ООП. Принципы ООП.
Язык Object Pascal является объектно-ориентированным расширением языка Pascal и реализует концепцию объектно-ориентированного программирования (ООП). Это означает, что создаваемое приложение будет состоять из объектов, которые должны взаимодействовать между собой. Каждый объект имеет свои свойства, то есть характеристики, методы, определяющие поведение этого объекта и события, на которые он реагирует.
Основными принципами объектно-ориентированного программирования являются:
- Инкапсуляция
- Наследование
- Полиморфизм
Инкапсуляция представляет собой объединение данных и обрабатывающих их методов (подпрограмм) внутри одного класса. Это означает, что в классе инкапсулируются (объединяются и помещаются внутри класса) поля, свойства и методы. При этом класс приобретает определенную функциональность.
Наследование заключается в порождении новых объектов-потомков от существующих объектов-родителей, при этом потомок берет от родителя все его поля, свойства и методы. В дальнейшем наследуемые поля, свойства и методы можно использовать в неизменном виде или переопределять (модифицировать).
Просто наследование смысла не имеет, поэтому в новый объект добавляются новые элементы, определяющие его особенность и функциональность. Удалить какие-либо элементы родителя в потомке нельзя. В свою очередь, от нового объекта можно породить следующий объект, в результате образуется дерево объектов или иерархия классов.
В начале этого дерева находится базовый класс TObject, который реализует элементы, наиболее общие для всех объектов, например, действия по созданию и удалению объектов. Чем дальше тот или иной объект находится в дереве от базового класса, тем он более специфичен.
Полиморфизм заключается в том, что методы различных объектов могут иметь одинаковые имена, но различное содержание. Это достигается переопределением родительского метода в классе-потомке. В результате родитель и потомок ведут себя по-разному. При этом обращение к одноименным методам различных объектов выполняется аналогично.