Объектно-ориентированное программирование или просто ООП — это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, при этом классы образуют иерархию наследования.
Важно! Программа считается объектно-ориентированной, только если выполнены все три указанные ниже требования:
- объектно-ориентированное программирование использует в качестве основных логических конструктивных элементов объекты, а не алгоритмы;
- каждый объект является экземпляром определенного класса;
- классы образуют иерархии.
Например, программирование, не использующее наследование, называется не объектно-ориентированным, а программированием с помощью абстрактных типов данных.
Одни языки в полной мере отвечают принципам ООП — в них все основные элементы являются объектами, имеющими состояние и связанные методы. Примеры подобных языков — Smalltalk, Eiffel.
Существуют и гибридные языки, совмещающие объектную подсистему в целостном виде с подсистемами других парадигм как «два и более языка в одном», позволяющие совмещать в одной программе объектные модели с иными.
Примеры этих языков: CLOS, Dylan, Objective-C, OCaml, Python, Ruby.
Но наиболее распространены языки, включающие средства эмуляции объектной модели поверх более традиционной императивной семантики.
Это языки Модула, Модула-2, Симула, C++, C#, Delphi, Java, Visual Basic, PHP.