Объектно-ориентированное программирование, использование предопределенных модульных единиц программирования (объектов, классов, подклассов и так далее) для того, чтобы сделать программирование более быстрым и простым в обслуживании. Объектно-ориентированные языки помогают справиться со сложностью в больших программах. Объекты упаковывают данные и операции над ними таким образом, что только операции становятся общедоступными, а внутренние детали структур данных скрываются. Такое сокрытие информации упрощает программирование крупных программ, позволяя программисту думать о каждой части программы в отдельности. Кроме того, объекты могут быть производными от более общих объектов, «наследуя» их возможности. Такая иерархия объектов позволила определять специализированные объекты, не повторяя все то, что есть в более общих.
Объектно-ориентированное программирование началось с языка Simula (1967), который добавил скрытие информации в АЛГОЛ. Другим влиятельным объектно-ориентированным языком был Smalltalk (1980), в котором программа представляла собой набор объектов, взаимодействующих между собой путем отправки сообщений. С 1990-х годов Java является одним из самых успешных объектно-ориентированных языков.