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

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

Примеры объектно-ориентированных языков в приблизительном хронологическом порядке включают 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): 16–82.
  2. ^ Барби, S; М. Кемпе; А. Штромайер (1993). «Объектно-ориентированное программирование с помощью Ada 9X» . Проект технического отчета . Швейцарский федеральный технологический институт в лаборатории программной инженерии Лозанны . Проверено 15 декабря 2013 года . Сама Ada 83 обычно не считается объектно-ориентированной; скорее, согласно терминологии Вегнера [Weg 87], он называется объектно-ориентированным, поскольку обеспечивает только ограниченную форму наследования и не имеет полиморфизма.