MATLAB R2008a. Классы. Часть1: Учебное пособие, страница 8

   >> a = 7; % Назначение числа 7 переменной a класса double                               % (по умолчанию).

   >> b = 'some string'; % Назначение строки символов

                        %  переменной b класса char (признак - кавычки).

Запрос по этим переменным  (считаем, что других переменных в рабочей области MATLAB нет) можно дать с помощью функции

   >> whos % Обращение к функции отображения рабочей области.

Данный запрос в нашем случае предоставляет следующую информацию:

   Name   Size       Bytes    Class

        (Имя)      (Размер)          (Байты)        (Класс)   

   a      1x1        8        double (двойная точность)

   b      1x11       22       char (символьная)

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

User-DefinedClasses (Классы, определяемые пользователями)

Вы можете создать ваш собственный (не встроенный в пакет MATLAB user-defined) класс.  Например, вы могли бы сформировать класс для представления полиномов. Этот класс может определять операции, соответствующие  данному классу, по аналогии с обычными (стандартными) MATLAB-операциями суммирования, вычитания, индексирования, отображения в Command Window и т.д. Однако эти операции в данном случае необходимо переопределить именно для суммирования ваших полиномов, вычитания полиномов и т.д. Например, когда вы суммируете два своих полиномиальных объекта

p1 + p2

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

Когда вы разрабатываете user-defined-класс, использующий операторы с именами стандартного типа, вы для него должны переопределить (разработать новые) стандартные функции-файлы (для оператора «+» это файл plus.m). Только переопределенные функции (файлы), если таковые есть, вызываются  MATLAB-программами, когда идентификаторы стандартных операций применяются к объектам  user-defined-класса (не стандартного для MATLAB).

Смотрите раздел Example — A Polynomial (Пример – полином), где даются вариант создания класса полиномов, работа с ним и его специфические характеристики.

MATLAB Classes — Key Terms (MATLAB-классы – ключевые понятия)

При описании MATLAB-классов используются следующие понятия:

w  Class definition (Определение класса) – описание того, что является общим для всех представителей класса, включающее определение  свойств, методов и событий, а также атрибутов класса и его компонентов;

w  Properties (Свойства) – общие хранилища данных для класса и всех его представителей;

w  Methods (Методы) – специальные функции, выполняющие операции, которые присущи классу и всем его представителям;

w  Events (События) – сообщения, которые определены классом и реализуются представителями класса, когда создаются специфические условия, требующие определенных действий;

w  Attributes (Атрибуты) – величины, характеризующие поведение свойств, методов, событий и классов;

w  Listeners (Слушатели) – объекты, которые реагируют на события, выполняя некоторые действия (в форме callback-функций);

w  Objects (Объекты) – конкретные представители классов, которые, помимо наследования общих характеристик класса и подкласса, содержат индивидуальные данные, хранимые в объектных свойствах, и не имеют своих производных (выводимых) форм;

w  Subclasses (Подклассы) – более специфические классы, которые выведены из других классов (суперклассов), наследуют методы, свойства и события суперклассов и являются интерфейсными для своих инстанций;

w  Superclasses (Суперклассы) – общие классы, которые используются для создания более специализированных классов (подклассов);

w  Packages (Пакеты) – директории, которые содержат коды определения классов и методов и задают их области (сферы) действия (существования или рассмотрения).

SomeBasicRelationships (Некоторые базовые отношения)

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

Classes (классы)

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

Class Hierarchies (Иерархии классов)

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