Иллюстрированный самоучитель по Matlab


Понятие об объектно-ориентированном программировании


Мы уже много раз упоминали различные

объекты

языка программирования системы MATLAB. Это является одним из признаков

объектно-ориентированного программирования

(ООП), причем чисто внешним. В основе объектно-ориентированного программирования лежат три основных положения.

  • Инкапсуляция —

    объединение данных и программ и передача данных через входные и выходные параметры функций. В результате появляется новый элемент программирования —

    объект.

  • Наследование

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

    множественное

    наследование, при котором класс наследует свойства

    нескольких

    родительских объектов. На наследовании основаны система задания типов данных, дескрипторная графика и многие другие приемы программирования. Примеры наследования мы уже неоднократно отмечали.

  • Полиформизм —

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

В дополнение к этим положениям объектно-ориентированное программирование в MATLAB допускает

агрегирование

объектов, т. е., объединение частей объектов или ряда объектов в одно целое.

Объект можно определить как некоторую структуру, принадлежащую к определенному

классу.

В MATLAB определены следующие семь основных классов объектов:

  • double — числовые массивы с элементами-числами двойной точности;

  • sparse — двумерные числовые или комплексные разреженные матрицы;

  • char — массивы символов;

  • struct — массивы структур (записей);

  • cell — массивы ячеек;

  • javaarray

    массивы Ява;

  • functionjnandle — дескрипторы функций.

С объектами этих классов мы многократно встречались, особо не оговаривая их принадлежность к объектно-ориентированному программированию. Для MATLAB вообще характерно, что никакие классы объектов (в том числе заново создаваемые) не требуют объявления. Например, создавая переменную nаmе='Иван', мы автоматически получаем объект в виде переменной name класса char. Таким образом, для переменных принадлежность к тому или иному классу определяется их значением. Является ли переменная объектом, можно определить при помощи функции isobject(HMfl переменной). Аналогичная функция isjava определяет, является ли переменная объектом Java.




Начало  Назад  Вперед