Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Термин объектно-ориентированный язык может использоваться в техническом смысле для описания любого языка программирования, который использует идею инкапсуляции состояния и операций внутри объектов . Объектно-ориентированные языки не должны поддерживать наследование или создание подтипов , но те, которые поддерживают, также называются объектно-ориентированными . Объектно-ориентированные языки, которые не поддерживают наследование или создание подтипов, обычно не считаются настоящими объектно-ориентированными языками.

Примеры объектно-ориентированных языков в приблизительном хронологическом порядке включают Simula , Smalltalk , C ++ (какая объектная модель основана на Simula), Objective-C (какая объектная модель основана на Smalltalk), Eiffel , Xojo (ранее REALbasic), Python. , Ruby , Java , Visual Basic .NET , C # и Fortran 2003 . Примерами языка, который является объектно-ориентированным, но не объектно-ориентированным, являются ранние версии Ada , Visual Basic (VB), JavaScript иФортран 90 . Все эти языки поддерживают определение объекта как структуры данных, но не имеют полиморфизма и наследования.

На практике термин объектно-ориентированный обычно применяется к тем объектно-ориентированным языкам, которые также не являются объектно-ориентированными, хотя все объектно-ориентированные языки также являются объектно-ориентированными по определению. Вместо этого термины объектно-ориентированный и объектно-ориентированный обычно используются как взаимоисключающие альтернативы, а не как категории, которые перекрываются.

Иногда термин объектно-ориентированный применяется к языкам программирования на основе прототипов , истинным объектно-ориентированным языкам, в которых отсутствуют классы, но в которых объекты вместо этого наследуют свой код и данные непосредственно от других объектов шаблона . Примером широко используемого языка сценариев на основе прототипов является JavaScript .

Как объектно-ориентированные, так и объектно-ориентированные языки (основанные на классах или на прототипах) могут подвергаться статической проверке типов . Статическая проверка языков на основе прототипов может быть трудной, потому что эти языки часто позволяют объектам динамически расширяться с новым поведением и даже изменять их родительский объект (от которого они наследуются) во время выполнения . [1] [2]

Разница между объектно-ориентированными и объектно-ориентированными языками [ править ]

Ссылки [ править ]

  1. Вегнер, Питер (декабрь 1987 г.). Мейровиц, Норман (ред.). «Измерения объектно-ориентированного языкового дизайна» (PDF) . Материалы конференции OOPSLA'87 . 22 (12): 168-182.
  2. ^ Барби, S .; Kempe, M .; Штромайер, А. (1993). «Объектно-ориентированное программирование с помощью Ada 9X» . Проект технического отчета . Швейцарский федеральный технологический институт в лаборатории программной инженерии Лозанны . Проверено 15 декабря 2013 года . Сама Ada 83 обычно не считается объектно-ориентированной; скорее, согласно терминологии Вегнера [Weg 87], он называется объектно-ориентированным, поскольку обеспечивает только ограниченную форму наследования и не имеет полиморфизма.