exponenta event banner

Суперкласс дескриптора

Построение на основе класса дескрипторов

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

Специализированные базовые классы дескрипторов

Чтобы добавить в класс как поведение дескриптора, так и определенные функциональные возможности, выведите класс из этих handle классы:

  • matlab.mixin.SetGet - Обеспечивает set и get для доступа к значениям свойств.

  • dynamicprops - позволяет определить свойства, связанные с объектом, но не с классом в целом.

  • matlab.mixin.Copyable Предоставляет copy метод, который можно настроить для класса.

Сведения об определении подклассов см. в разделе Конструирование конструкторов подклассов.

Методы класса дескрипторов

При выводе класса из handle класс наследует методы, позволяющие более эффективно работать с объектами-дескрипторами.

Перечисление методов класса путем передачи имени класса methods функция:

methods('handle')
Methods for class handle:

addlistener  findobj      gt           lt           
delete       findprop     isvalid      ne           
eq           ge           le           notify  

Методы события и прослушивателя

Для получения информации об использовании notify и addlistener см. раздел Синтаксис событий и прослушивателей.

Реляционные методы

TF = eq(H1,H2)
TF = ne(H1,H2)
TF = lt(H1,H2)
TF = le(H1,H2)
TF = gt(H1,H2)
TF = ge(H1,H2)

Класс дескриптора перегружает эти функции для поддержки тестов равенства и сортировки по дескрипторам. Для каждой пары входных массивов эти функции возвращают логический массив одинакового размера. Каждый элемент представляет собой результат теста равенства или сравнения. Входные массивы должны иметь одинаковый размер или один (или оба) могут быть скалярными. При необходимости метод выполняет скалярное расширение. Дополнительные сведения о реляционных методах класса дескрипторов см. в разделе relationaloperators.

Срок действия дескриптора теста

Используйте isvalid handle метод класса, чтобы определить, является ли переменная допустимым объектом дескриптора. Например, в инструкции:

B = isvalid(H)

B является логическим массивом, в котором каждый элемент true если и только если, соответствующий элемент H является допустимым дескриптором. B всегда тот же размер, что и H.

Когда MATLAB уничтожает объекты

MATLAB уничтожает объекты в рабочей области функции, когда функция:

  • Переназначение переменной объекта на новое значение

  • Не использует переменную объекта для остальной части функции

  • Выполнение функции заканчивается

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

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

Дополнительные сведения см. в разделе Деструктор класса дескриптора.

Связанные темы