Объектно-ориентированный язык программирования
Объектно-ориентированный язык программирования (ОО-язык) — язык, построенный на принципах объектно-ориентированного программирования.
В основе концепции объектно-ориентированного программирования лежит понятие объекта — некой сущности, которая объединяет в себе поля (данные) и методы (выполняемые объектом действия).
Например, объект человек может иметь поля имя, фамилия и методы есть и спать. Соответственно, в программе можем использовать операторы Человек.Имя:="Иван" и Человек.Есть(пища).
Особенности
В современных ОО языках используются механизмы<ref name="Лафоре">Шаблон:Cite web</ref>:
- Наследование. Создание нового класса объектов путём добавления новых элементов (методов). Некоторые ОО языки позволяют выполнять множественное наследование, то есть объединять в одном классе возможности нескольких других классов<ref name="study-java">Шаблон:Cite web</ref>.
- Инкапсуляция. Сокрытие деталей реализации, которое позволяет вносить изменения в части программы безболезненно для других её частей, что существенно упрощает сопровождение и модификацию ПО<ref name="study-java" />.
- Полиморфизм. При полиморфизме некоторые части (методы) родительского класса заменяются новыми, реализующими специфические для данного потомка действия. Таким образом, интерфейс классов остаётся прежним, а реализация методов с одинаковым названием и набором параметров различается. В ООП обычно применяется полиморфизм подтипов (называемый при этом просто «полиморфизмом»), нередко в форме Шаблон:Iw<ref name="study-java" />.
Список языков
Неполный список объектно-ориентированных языков программирования:<ref>Шаблон:Cite web</ref>
- ActionScript (3.0)
- Ada
- C#
- C++ <ref name="Лафоре" />
- Cyclone
- D
- Delphi <ref>Шаблон:Cite web</ref><ref>Шаблон:Cite web</ref>
- Dylan <ref>Команда разработчиков BLFS, «За пределами проекта „Linux® с нуля“». Версия 7.4, Том 1, стр.622</ref>
- Eiffel
- F#
- Groovy
- Io
- Java <ref name="study-java" /><ref>Шаблон:Cite web</ref>
- JavaScript <ref>Шаблон:Cite web</ref><ref>Шаблон:Cite web</ref><ref>Шаблон:Cite web</ref>
- JScript .NET
- Kotlin
- Object Pascal
- Objective-C <ref>Шаблон:Cite web</ref>
- Perl
- PHP <ref>Шаблон:Cite web</ref>
- PowerBuilder
- Python <ref>Шаблон:Cite web</ref>
- Ruby <ref>Шаблон:Cite web</ref>
- Scala
- Simula
- Smalltalk <ref>Шаблон:Cite web</ref><ref>Шаблон:Cite web</ref>
- Lua
- Swift <ref>Шаблон:Cite web</ref>
- Vala <ref>Шаблон:Cite web</ref>
- VB.NET
- Visual DataFlex
- Xbase++
- X++
- Crystal
- Nim
- КуМир
Кроме ОО-языков общего назначения существуют и узкоспециализированные ОО-языки.