ООП имеет уже более чем сорокалетнюю историю, но, несмотря на это, до сих пор не существует чёткого общепринятого определения данной технологии. Основные принципы, заложенные в первые объектные языки и системы, подверглись существенному изменению (или искажению) и дополнению при многочисленных реализациях последующего времени.
Основные термины и понятия
ООП расшифровывается как объектно-ориентированное программирование. Это парадигма (совокупность идей и понятий) программирования, в которой основными концепциями являются понятия объектов и классов.
Абстракция — абстрагирование, это способ описания общих характеристик объекта.
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе, и скрыть детали реализации от пользователя.
Наследование — свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым, родительским. Новый класс — потомком или дочерним классом.
Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
Класс является описываемой на языке терминологии исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом.
Объект — это экземпляр класса, совокупность данных (свойств) и функций (методов) для обработки данных.
Это все, сухие определения, но их нужно знать (или о них нужно знать), чтобы было хотя бы какое-то понимание про ООП.