Меня щас тапками закидают, но!
ИМХО, честно, за все время практики, я сталкивался с разношорстной кучей функциопальщины и процедурщины, от малого к большему от простого к сложному.
Наверняка сказать могу только одно, пожалуй лучшее определение для меня(исключительно), ООП - это в сущности, более гибкие "функции"(классы), содержащие внутри себя другие функции(методы), и в целом, представляют собой набор необходимых инструментов в единой обертке.
То есть вызвав 1 класс, я получаю доступ ко всем его методам внутри разом, и могу обратится к каждому из них в любой момент, когда это нужно, или не в один из них.
Есть у нас на одном проекте, легаси с классами старше моей мамы(шутка), там все как раз по такому принципу и построено.
Все внутренние методы, собраны в класс ради того что бы использовать его как сказано выше, не более того(и я честно не назвал бы это ООП, вот вообще, но что делать, работаем с тем, что есть).
В целом, это наверное самое простое и того, чем и как можно было бы описать ООП(хотя это не точно).