| Деструктор
Точечные изображения как объекты
Геометрическая оптика Фотоэлектрический
эффект
Ядерные реакции Волновые свойства
Квантовая механика Электромагнитное
поле
Задачник по ядерной физике Квантовая
физика Электростатика
Математика MATLAB Компьютерная математика Maple
Лекции по математике учебник
Outlook На главную Числовые
ряды |
Понятие об объектно-ориентированном программировании
Мы уже много раз упоминали различные объекты языка программирования системы MATLAB. Это является одним из признаков объектно-ориентированного программирования (ООП), причем чисто внешним. В основе объектно-ориентированного программирования лежат три основных положения.
Инкапсуляция — объединение данных и программ и передача данных через входные и выходные параметры функций. В результате появляется новый элемент программирования — объект.
Наследование — возможность создания родительских объектов и новых дочерних объектов, наследующих свойства родительских объектов. Возможно также множественное наследование, при котором класс наследует свойства нескольких родительских объектов. На наследовании основаны система задания типов данных, дескрипторная графика и многие другие приемы программирования. Примеры наследования мы уже неоднократно отмечали.
Полиформизм — присвоение некоторому действию одного имени, которое в дальнейшем используется по всей цепочке создаваемых объектов сверху донизу, причем каждый объект выполняет это действие присущим ему способом.
В дополнение к этим положениям объектно-ориентированное программирование в MATLAB допускает агрегирование объектов, т. е., объединение частей объектов или ряда объектов в одно целое.
Объект можно определить как некоторую структуру, принадлежащую к определенному классу. В MATLAB определены следующие семь основных классов объектов:
double — числовые массивы с элементами-числами двойной точности;
sparse — двумерные числовые или комплексные разреженные матрицы;
char — массивы символов;
struct — массивы структур (записей);
cell — массивы ячеек;
javaarray — массивы Ява;
functionjnandle — дескрипторы функций.
С объектами этих классов мы многократно встречались, особо не оговаривая их принадлежность к объектно-ориентированному программированию. Для MATLAB вообще характерно, что никакие классы объектов (в том числе заново создаваемые) не требуют объявления. Например, создавая переменную nаmе='Иван', мы автоматически получаем объект в виде переменной name класса char. Таким образом, для переменных принадлежность к тому или иному классу определяется их значением. Является ли переменная объектом, можно определить при помощи функции isobject(HMfl переменной). Аналогичная функция isjava определяет, является ли переменная объектом Java.
Для создания новых классов объектов служат конструкторы классов. По
существу, это m-файлы, имена которых совпадают с именами классов @Имя_класса,
но без символа @. Этим символом помечаются подпапки системы MATLAB, в которых
имеются конструкторы классов. Множество таких папок с примерами конструкторов
классов вы найдете в подпапках MATLAB\TOOLBOX.
В качестве примера рассмотрим поддиректорию @SYM в директории TOOLBOX\ SYMBOLIC.
В этой поддиректории можно найти конструкторы для более чем сотни объектов пакета
символьной математики. К примеру, конструктор функции, вычисляющей арктангенс,
выглядит следующим образом:
» help @sym/atan.m
ATAN Symbolic inverse tangent.
» type @sym/atan,m
function Y = atan(X)
%ATAN Symbolic inverse tangent.
% Copyright (c) 1993-98 by The MathWorks. Inc.
% SRevision: 1.10 $ $Date: 1997/11/29 01:05:16 $
Y = mapleCmap' ,'atan' .X);
В данном случае для конструирования нужного объекта используется функция mapl e, дающая вход в ядро системы символьной математики Maple V R4, которое поставляется в составе системы MATLAB по лицензии фирмы MapleSoft, Inc. Этот пример, кстати, наглядно показывает, что пользователь системы MATLAB может существенно расширить число объектов класса sym, поскольку ядро системы Maple V содержит намного больше определений, чем пакет символьной математики системы MATLAB. Для создания новых классов объектов служит функция class, описанная ниже.
Итак, объектно-ориентированное программирование — это как бы кинжал, закрепленный на вашем поясе. Вы можете и не воспользоваться этим оружием, ощущая при этом его значимость и ценя красоту. Но в альтернативном варианте вы можете использовать его во время ежедневной трапезы в качестве столь необходимого столового ножа. В первом случае вы выступаете в качестве обычного пользователя, а во втором — программиста-профессионала.
Пакеты прикладных программ системы MATLAB позволяют разработчикам с большим успехом использовать возможности объектно-ориентированного программирования путем создания новых классов и объектов. М-файлы системы представляют собой массу наглядных примеров объектно-ориентированного программирования на языке MATLAB. Это дает основание ограничиться справочным описанием основных средств такого программирования с приведением минимума простых примеров.
| Объектно-ориентированный подход CorelDRAW Установка параметров цвета в цифровом виде Искусство Западная Европа Трехмерное объектно-ориентированное программное обеспечение CAD Эффект Комптона Волновые свойства электронов Геометрическая оптика Фотоэлектрический эффект Строение атомных ядер Волновые свойства микрочастиц Математические пакеты Моделирование и расчет электронных схем Конструкционные материалы Релятивистская механика Справочник по физикеПрикладная математика Архитектурное проектирование ArchiCAD Строительное и ландшафтного проектирования Planix Home 3D Architect Функции преобразования ; |