ООП имеет уже более чем сорокалетнюю историю, но, несмотря на это, до сих пор не существует чёткого общепринятого определения данной технологии. Основные принципы, заложенные в первые объектные языки и системы, подверглись существенному изменению (или искажению) и дополнению при многочисленных реализациях последующего времени.

Основные термины и понятия

ООП расшифровывается как объектно-ориентированное программирование. Это парадигма (совокупность идей и понятий) программирования, в которой основными концепциями являются понятия объектов и классов.

Абстракция — абстрагирование, это способ описания общих характеристик объекта.

Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе, и скрыть детали реализации от пользователя.

Наследование — свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским. Новый класс — потомком или дочерним классом.

Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.

Класс является описываемой на языке терминологии исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом.

Объект — это экземпляр класса, совокупность данных (свойств) и функций (методов) для обработки данных.

Это все, сухие определения, но их нужно знать (или о них нужно знать), чтобы было хотя бы какое-то понимание про ООП.