Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Турбо Ассемблер / Использование Турбо Ассемблера /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Объектно-ориентированное программирование - Программирование от RIN.RU
Объектно-ориентированное программирование



Терминология


Для различных единиц объектно-ориентированного программирования в C++ и Паскале используются различные термины. В этом смысле Турбо Ассемблер более близок к Паскалю, хотя не все термины здесь совпадают. Различия между языками описываются в следующей таблице:


Терминология объектно-ориентированного программирования
Турбо АссемблерBorland C++Турбо Паскаль
методфункция-элемент метод
процедура метода   
объект класс объект
базовый объект базовый класс базовый объект
порождающий объект порождающий класс порождающий объект
порожденный объект порожденный класс порожденный объект
поле порожденного объекта элемент данных поле



Примечание: Эти термины подробнее поясняются в данной главе ниже.


Для чего в Турбо Ассемблере используются объекты?


Большинство рассматривают язык Турбо Ассемблера, как язык низкого уровня. Однако Турбо Ассемблер обеспечивает многие средства языка высокого уровня (такие как абстрактные типы данных и простой интерфейс с другими языками). Дополнение Ассемблера объектно-ориентированными структурами данных дает ему возможность создавать объектно-ориентированные программы так же легко, как это делается на языках высокого уровня, с сохранением скорости и гибкости языка Ассемблера.


Что такое объект?


Объект состоит из структуры данных и связанных с ней процедур (которые называются методами), которые работают с данными, записанными в экземплярах структуры данных.


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


Примечание: Для объектно-ориентированного программирования мы настоятельно рекомендуем вам использовать режим Ideal Турбо Ассемблера, поскольку область действия идентификаторов в MASM является глобальной, и вы не сможете различить различные расположения показанных методов.


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


В Турбо Ассемблере определено несколько идентификаторов, которые вы можете использовать при описании объектов. Они перечислены в следующей таблице:


Идентификаторы, определенные для объектов
ИдентификаторЗначение
@ObjectТекстовая макрокоманда, содержащая имя текущего объекта (последнего описанного объекта).
<имя_объекта>Тип данных STRUC, описывающий структуру данных объекта.
@Table_<имя_объекта>Тип данных TABLE, содержащий таблицу методов объекта. Это не то же самое, что экземпляр таблицы виртуальных методов.
@TableAddr_<имя_объекта>Метка, описывающая адрес экземпляра таблицы виртуальных методов объекта (если она есть).



Пример объекта


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


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


Возможности, необходимые для использования связанного списка, предоставляют следующие операции:


  • создание связанного списка (выделение для него памяти);

  • уничтожение связанного списка (освобождение используемой памяти);

  • инициализация связанного списка;

  • деинициализация связанного списка;

  • вставка элемента в середину списка перед существующим элементом;

  • присоединение элемента к концу связанного списка;

  • удаление элемента из связанного списка;

  • возвращение первого элемента связанного списка;

  • возвращение последнего элемента связанного списка.




Имейте в виду, что создание и инициализация, а также уничтожение и деинициализация методов - это не синонимы. При создании и уничтожении методы create и destroy выделяют и освобождают память для объекта (связанного списка), а методы инициализации и деинициализации initialize и deinitialize только инициализируют и деинициализируют ранее выделенные экземпляры объекта.


Вы можете видеть, как объект связанного списка наследуется объектами стека или очереди, поскольку очередь и стек можно реализовать как связанный список с ограниченным числом операций. Например, можно реализовать очередь в виде связанного списка, в котором элементы могут добавляться к концу и извлекаться из начала. Если вы таким образом реализуете очередь, то нужно запретить наследуемые методы связанного списка, которые для очереди недопустимы (например, вставку в середину списка).


<<<  НазадВперед  >>>
 1  2  3  4  5  6 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Начало работы на Турбо Ассемблере

Использование директив и параметров

Общие принципы программирования

Использование выражений и значений идентификаторов

Директивы выбора процессора

Использование моделей памяти программы и сегментации

Определение типов данных

Задание и использование счетчика адреса

Описание процедур

Управление областью действия идентификаторов

Определение данных

Расширенные инструкции

Использование макрокоманд

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь