До сих пор не существует общепризнанного определения объектно-ориентированного программирования. Можно найти и философское, и научное, и техническое определение. И все они будут правильными.
По материалам из Википедии, объектно-ориентированное программирование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию наследования.
Необходимо обратить внимание на следующие важные части этого определения:
объектно-ориентированное программирование использует в качестве основных логических конструктивных элементов объекты, а не алгоритмы;
каждый объект является экземпляром определенного класса;
классы образуют иерархии.
Программа считается объектно-ориентированной, только если выполнены все три указанных требования.
В соответствии с другими определениям, под ООП можно понимать:
звено в парадигмах программирования.
мыслеформа программиста, занятого программными решениями.