Объектно-ориентированный подход к программированию имеет 4 важных аспекта:
 1) модульность; она позволяет:
 - разбить программу на модули и локализовать область действия подпро
 грамм и переменных;
 - изменять локальные подпрограммы, не изменяя других программных моду
 лей;
 2) абстракция данных; абстрактный тип данных определяется на основе неко
 торого их представления и множества подпрограмм для обработки данных
 абстрактного типа;
 3) динамическая связка подпрограмм программы; это позволяет не переком
 пилировать всю программу при внесении изменений в отдельные модули,
 что увеличивает гибкость языка, позволяя вводить новые классы объектов
 без модификации всей программы;
 4) наследование; оно позволяет создавать классы объектов, на которые может
 ссылаться порожденный класс, который наследует все свойства порож
 дающего класса и может задавать дополнительные свойства и новые под
 программы обработки данных порожденного класса.
 Это позволяет создавать компактные программы: при определении нового объекта, незначительно отличающегося от объекта-предка, не надо заново описывать свойства, общие с объектом-родителем, достаточно определить только различия.
 ООП обладает рядом преимуществ при создании больших программ:
 1) использование более естественных понятий и простота введения новых
 понятий;
 2) некоторое сокращение размера программ за счет того, что повторяющиеся
 (наследуемые) свойства и действия можно не описывать многократно;
 применение динамических объектов позволяет более эффективно использовать ОП;
 3) возможность создания библиотек объектов;
 4) сравнительно простая возможность внесения изменений в программу без
 изменения написанных частей, а в ряде случаев без перекомпиляции написанных и скомпилированных программ (библиотек); при этом используются свойства наследования и полиморфизма; это упрощает модификацию программ, придает им гибкость; одно из главных достоинств ООП - возможность расширять область применения программ, не переделывая программу, а лишь добавляя в нее новые уровни иерархии;
 5) возможность использования подпрограмм с различными наборами формальных параметров, но имеющих одно и то же имя, применяя свойство
 полиморфизма;
 6) более четкая локализация свойств и методов объекта (с помощью свойства
 инкапсуляции);
 7) возможность разделения доступа к различным объектам программы.
 Однако ООП имеет ряд недостатков и эффективно не всегда.
 ООП требует изучения большого количества встроенных подпрограмм объектов порождающих классов.
 Как правило, использование ООП приводит к уменьшению быстродействия программы, особенно когда применяются виртуальные методы. Неэффективно ООП применительно к небольшим программам. Преимущества ООП в полной мере проявляются только при разработке достаточно сложных программ. Поэтому ООП можно рекомендовать при создании больших программ или класса программ, например для создания интерактивных систем с помощью средств визуального программирования. Применение ООП не упрощает саму программу, а упрощает технологию ее создания.
 Попытки использовать ООП для программирования несложных алгоритмических действий, связанных, например, с вычислениями по готовым формулам, чаще всего выглядит искусственным нагромождением ненужных языковых конструкций. Их проще разрабатывать традиционными средствами Паскаля. А при разработке сложных диалоговых программ программист вынужден структурировать программу, т. е. разбить ее на ряд взаимосвязанных и взаимозависимых подпрограмм. Это фактически ведет к разработке собственной библиотеки подпрограмм; в этом случае целесообразноиспользовать средства ООП.