Выполнил студент группы и -21: Васильев Павел Юрьевич
Object Pascal ( с англ. « Объектный Паскаль ») язык программирования, разработанный в фирме Apple Computer в 1986 году группой Лари Теслера, который консультировался с Никлаусом Виртом. Произошёл от более ранней объектно - ориентированной версии Паскаль, называвшейся Clascal, который был доступен на компьютере Apple Lisa.
Изменения коснулись групп целых, символьных и строковых типов, которые стали разделяться на две категории : Фундаментальные (fundamental) типы. Их представление в памяти ( число битов и наличие знака ) строго фиксируется и выдерживается неизменным во всех последующих реализациях Object Pascal для любых операционных систем и компьютерных платформ. Родовые (generic) типы. Их представление в памяти не фиксируется и будет реализовано оптимальным способом, в зависимости от реализации для конкретной операционной системы и компьютерной платформы.
Операторы динамической проверки и приведения типов [ править | править вики - текст ] В языке Object Pascal фирмы Borland появилась динамическая типизация, а также оператор динамического приведения типов as и оператор is для динамической проверки типов. Также в открытом массиве параметров стала возможна передача параметров различного типа (variant open array parameters).
В Turbo Pascal можно было работать как с динамическими, так и со статическими экземплярами объектов. В объектной модели Object Pascal программист работает только с динамическими экземплярами классов, выделяемых в heap- области ( куче ). В связи с этим изменен синтаксис обращения к полям и методам объектов. Ранее для работы с динамическими экземплярами объектов, инициализированными с использованием обращения к конструктору в сочетании с функцией New, необходимо было использовать обращение по указателю (^). Теперь тип класса стал являться по умолчанию также указателем. Пример для сравнения :
type PMyObject = ^TMyObject; TMyObject = object (TObject) MyField : PMyType; constructor Init; end ; //... var MyObject : PMyObject; begin MyObject := New (PMyObject,Init); MyObject^.MyField := //... end ;
type TMyObject = class (TObject) MyField : TMyType; constructor Create; end ; //... var MyObject : TMyObject; begin MyObject := TMyObject.Create; MyObject.MyField := //... end ;
Было изменено соглашение об именовании конструкторов и деструкторов. В старой объектной модели вызов New отвечал за распределение памяти, а обращение к конструктору инициализировало выделенную область памяти. В новой модели эти действия выполняет конструктор Create. Начиная с версии Delphi XE появились статические методы класса. Появилась возможность ограничивать видимость членов класса ( методы, свойства ), которые предназначены для использования только в реализации производных классов. Это дает возможность защищать исходный код от модификации пользователями класса. Такие методы содержатся в секции protected ( защищённые ) в объявлении класса.