Суперкласс указателя

Построение на классе Handle

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

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

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

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

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

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

Для получения информации о том, как задать подклассы, см. Конструкторов подкласса Проекта.

Методы класса Handle

Когда вы выводите класс от класса 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)

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

Тестирование законности указателя

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

B = isvalid(H)

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

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

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

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

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

  • Функциональные концы выполнения

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

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

См. "Деструктор класса указателей" для получения дополнительной информации.

Похожие темы