Роль классов в MATLAB

Классы

В MATLAB® язык, каждое значение присвоено классу. Например, создание переменной с оператором присваивания создает переменную соответствующего класса:

a = 7;
b = 'some text';
s.Name = 'Nancy';
s.Age = 64;
whos
whos
  Name      Size            Bytes  Class     Attributes

  a         1x1                 8  double
  b         1x9                18  char
  s         1x1               370  struct 

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

Предопределенные классы

MATLAB задает основные классы, которые включают основные типы, используемые языком. Эти классы включают числовой, logical'char'ячейкаStruct (), и указатель на функцию.

Пользовательские классы

Можно создать собственные классы MATLAB. Например, вы могли задать класс, чтобы представлять полиномы. Этот класс мог задать операции, обычно сопоставленные с классами MATLAB, как сложение, вычитание, индексация, отображение в командном окне, и так далее. Эти операции должны были бы выполнить эквивалент полиномиального сложения, полиномиального вычитания, и так далее. Например, когда вы добавляете два полиномиальных объекта:

p1 + p2

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

Когда вы задаете класс, можно перегрузить специальные функции MATLAB (такие как plus.m для оператора сложения). MATLAB вызывает эти методы, когда пользователи применяют те операции к объектам вашего класса.

Смотрите Полиномы Представления с Классами для примера, который создает только такой класс.

Классы MATLAB - ключевые условия

Классы MATLAB используют следующие слова, чтобы описать различные части определения класса и связанных концепций.

  • Определение класса — Описание того, что характерно для каждого экземпляра класса.

  • Свойства — Хранение данных для экземпляров класса

  • Методы — Специальные функции, которые реализуют операции, которые обычно выполняются только на экземплярах класса

  • События — сообщения, заданные классами и широковещательной передачей экземплярами класса, когда некоторое определенное действие происходит

  • Атрибуты — Значения, которые изменяют поведение свойств, методов, событий и классов

  • Прослушиватели — Объекты, которые отвечают на определенное событие путем выполнения функции обратного вызова, когда уведомление события широковещательно передается

  • Объекты — Экземпляры классов, которые содержат фактические значения данных, сохраненные в свойствах объектов

  • Подклассы — Классы, которые выведены из других классов и которые наследовали методы, свойства и события от тех классов (подклассы упрощают повторное использование кода, заданного в суперклассе, из которого они выведены).

  • Суперклассы — Классы, которые используются в качестве базиса для создания более в частности заданных классов (то есть, подклассы).

  • Пакеты — Папки, которые задают осциллограф для класса и функционального именования

Некоторые основные отношения

В этом разделе рассматриваются некоторые фундаментальные понятия, используемые классами MATLAB.

Классы

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

Иерархии классов

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

Математические наборы могут помочь проиллюстрировать отношения среди классов. В следующей схеме набор Положительных Целых чисел является подмножеством набора Целых чисел и подмножеством Положительных сторон. Все три набора являются подмножествами Реалов, который является подмножеством Всех Чисел.

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

“” Отношение, хороший способ определить, уместно ли задать конкретное подмножество в терминах существующих надмножеств. Например, каждый из следующих операторов имеет смыслы:

  • Положительным Целым числом является Целое число

  • Положительным Целым числом является Положительное число

Если “” отношение, содержит, то вероятно, что можно задать новый класс от класса или классов, которые представляют некоторый более общий случай.

Многократное использование решений

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

Объекты

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

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

Инкапсуляция информации

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

Ссылки

[1] Shalloway, A., Дж. Р. Тротт, шаблоны разработки объяснили новый взгляд на объектно-ориентированный проект.. Бостон, MA: Аддисон-Уэсли 2002.

[2] Гамма, E. R. Руководите, Р. Джонсон, Дж. Влиссайдс, элементы шаблонов разработки допускающего повторное использование объектно-ориентированного программного обеспечения. Бостон, MA: Аддисон-Уэсли 1995.

[3] Фримен, E., Элизабет Фримен, горная цепь Кэти, Берт Бэйтс, возглавляет первые шаблоны разработки. Севастополь, CA 2004.

Похожие темы