The Handle Superclass
Building on the Handle Class
The handle
class is an abstract class. Therefore, you cannot create objects of this class directly. Use the handle
class as a superclass to implement subclasses that inherit handle behavior. MATLAB® defines several classes that derive from the handle
class. These classes provide specialized functionality to subclasses.
Specialized Handle Base Classes
To add both handle behavior and specific functionality to your class, derive your class from these handle
classes:
matlab.mixin.SetGet
— Providesset
andget
methods to access property values.dynamicprops
— Enables you to define properties that are associated with an object, but not the class in general.matlab.mixin.Copyable
Provides acopy
method that you can customize for your class.
For information on how to define subclasses, see Design Subclass Constructors.
Handle Class Methods
When you derive a class from the handle
class, the subclass inherits methods that enable you to work more effectively with handle objects.
List the methods of a class by passing the class name to the methods
function:
methods('handle')
Methods for class handle: addlistener findobj gt lt delete findprop isvalid ne eq ge le notify
Event and Listener Methods
For information on how to use the notify
and addlistener
methods, see Events and Listeners Syntax.
Relational Methods
TF = eq(H1,H2) TF = ne(H1,H2) TF = lt(H1,H2) TF = le(H1,H2) TF = gt(H1,H2) TF = ge(H1,H2)
The handle class overloads these functions to support equality tests and sorting
on handles. For each pair of input arrays, these functions return a logical array of
the same size. Each element is an element-wise equality or comparison test result.
The input arrays must be the same size or one (or both) can be scalar. The method
performs scalar expansion as required. For more information on handle class
relational methods, see relationaloperators
.
Test Handle Validity
Use the isvalid
handle
class method to determine if a variable is a valid handle object. For example, in the statement:
B = isvalid(H)
B
is a logical array in which each element is true
if, and only if, the corresponding element of H
is a valid handle. B
is always the same size as H
.
When MATLAB Destroys Objects
MATLAB destroys objects in the workspace of a function when the function:
Reassigns an object variable to a new value
Does not use an object variable for the remainder of a function
Function execution ends
When MATLAB destroys an object, it also destroys values stored in the properties of the object. MATLAB frees computer memory associated with the object for use by MATLAB or the operating system.
You do not need to free memory in handle classes. However, there can be other operations that you want to perform when destroying an object. For example, closing a file or shutting down an external program that the object constructor started. Define a delete
method in your handle subclass for these purposes.
See Handle Class Destructor for more information.