1.1 Объектно-ориентированное программированиеОбъектно-ориентированное программирование или объектное программирование (в дальнейшем ООП) –парадигма программирования, в которой основными концепциями являются понятия объектов и классов.
В языках, основанных на понятии «класс», все объекты разделены на два основных типа - классы и экземпляры. Класс определяет структуру и функциональность (поведение), одинаковую для всех экземпляров данного класса. Экземпляр класса является носителем данных, то есть обладает состоянием, меняющимся в соответствии с поведением, заданным классом.
В класс-ориентированных языках новый экземпляр создаётся вызовом конструктора класса (возможно, с набором параметров). Получившийся экземпляр имеет структуру и поведение, жёстко заданные его классом. Концептуальным фундаментом, на который опираются другие языки программирования, является C++ (синтаксис и стиль).
Прототипное программирование — стиль объектно-ориентированного программирования, при котором отсутствует понятие класса, а повторное использование (наследование) производится путём клонирования существующего экземпляра объекта — прототипа. Примерами могут служить такие распространенные языки программирования как JavaScript, Python.
Отличительной чертой ООП является особый способ построения кода программы, основанный на трех фундаментальных принципах: наследование, инкапсуляция и полиморфизм.