АкушерствоАнатомияАнестезиологияВакцинопрофилактикаВалеологияВетеринарияГигиенаЗаболеванияИммунологияКардиологияНеврологияНефрологияОнкологияОториноларингологияОфтальмологияПаразитологияПедиатрияПервая помощьПсихиатрияПульмонологияРеанимацияРевматологияСтоматологияТерапияТоксикологияТравматологияУрологияФармакологияФармацевтикаФизиотерапияФтизиатрияХирургияЭндокринологияЭпидемиология

Дополнительные возможности системы Matlab

Прочитайте:
  1. I. Противоположные философские системы
  2. II. Дополнительные методы
  3. II. Клетки иммунной системы
  4. IV. Анатомия органов сердечно-сосудистой системы
  5. IV. Реакция эндокринной системы на гипогликемию
  6. V. Органы лимфатической системы, иммунной системы
  7. VI. Анатомия центральной нервной системы
  8. VII. Анатомия периферической нервной системы
  9. YI. Дополнительные сведения
  10. А) при повышении тонуса симпатической нервной системы

#$+Объекты и классы. Переопределение операций.

MATLAB позволяет реализовать концепцию объектно-ориентированного программирования. В MATLAB можно создавать и манипулировать объектами, которые скрывают реальные данные за контролируемыми методами работы с ними, допускают переопределение операций и дают возможность наследовать их свойства производным объектам-потомкам. Однако, последний принцип объектно-ориентированного программирования, полиморфизм (возможность вызывать методы классов-потомков через интерфейсы базовых классов), в MATLAB не реализован. Конкретнее, в MATLAB нет ничего подобного механизму виртуальных функций в языке программирования C++.

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

Для создания нового класса объектов нужно спроектировать структуру MATLAB, которая будет хранить данные, принадлежащие объекту, и определить функции-методы работы с этими объектами. Эти функции определяются в обычных М-файлах, которые должны быть помещены в специальную папку, имя которой начинается с символа '@', а в остальном должно совпадать с именем структуры (класса), причем эта папка должна входить в папку, определенную в пути MATLAB-path. Саму папку-контейнер методов добавлять в путь MATLAB не нужно.

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

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

Рассмотрим пример конструктора, создающего объекты класса "полином". Этот конструктор должен находиться в файле @polynom/polynom.m.

function p = polynom(a)

%POLYNOM Polynomial class constructor.

% p = POLYNOM(v)

if nargin = = 0

p.c = [];

p = class(p, 'polynom');


Дата добавления: 2015-01-18 | Просмотры: 620 | Нарушение авторских прав



1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |



При использовании материала ссылка на сайт medlec.org обязательна! (0.002 сек.)