Объектно-ориентированное программирование

Материал из «Знание.Вики»
Kotlin in IntelliJ Idea - parameters hints.gif

Объектно-ориентированное программирование (ООП) — методология программирования, в которой программа представляет собой совокупность взаимодействующих объектов (классов), с образованием иерархии наследования[1].

История

ООП возникло как развитие идей процедурного программирования, при котором данные и методы, их обрабатывающие, формально не связаны. Взгляд на программирование «под новым углом» предложили Алан Кэй и Дэн Ингаллс в языке Smalltalk. Здесь понятие класса стало основообразующей идеей для всех остальных конструкций. В настоящее время количество прикладных языков программирования (список языков), реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам[1].

Основные понятия ООП

Основные понятия в ООП следующие[2]:

  • Инкапсуляция: объединение данных и методов в едином контейнер (классе), а также в некоторых языках сокрытие реализации: чтобы было достаточно указать «что делать», не указывая «как делать»;
  • Наследование: возможность создать новый класс на основе уже существующего, при этом наследуя функционал родительского класса, что позволяет избежать многократного дублирования одного и того же кода[3];
  • Полиморфизм: возможность использовать объекты независимо от их типа данных и внутреннего устройства. Различают ad-hoc полиморфизм (ложный), и параметрический полиморфизм (истинный)[1];
  • Класс: универсальный тип данных, состоящий из полей (переменных более простых типов) и методов (функций) для работы с полями, то есть он представляет собой модель информационной сущности с интерфейсом для обработки своих внутренних данных;
  • Объект: сущность в адресном пространстве ЭВМ, появляющаяся при создании экземпляра класса (например, при исполнении программы)[3].

Примечания

  1. 1,0 1,1 1,2 Бадд Т. Объектно-ориентированное программирование в действии. — СПб., 1997. — 460 с.
  2. Буч Г., Максимчук Р., Энгл М. Объектно-ориентированный анализ и проектирование с примерами приложений. — 2010. — 720 с.
  3. 3,0 3,1 Влиссидес Д., Джонсон Р., Хелм Р., Гамма Э. Приемы объектно-ориентированного проектирования. http://www.sugardas.lt/. Дата обращения: 2023.05.27.