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



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


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

объекты

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

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

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

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

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

объект.

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

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

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

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

нескольких

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

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

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

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

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

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

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

классу.

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

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

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

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

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

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

javaarray

массивы Ява;

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

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




Содержание  Назад  Вперед