主要内容

哪种班级使用

值和处理类的示例

句柄类和值类在不同的情况下是有用的。例如,值类使您能够创建具有与MATLAB相同行为的数组类®数字类。

代表与课程的多项式表示具有类的结构化数据提供值类的示例。

处理类使您可以创建多个函数或对象可以共享的对象。处理对象允许对象之间的更复杂的交互,因为它们允许对象相互引用。

使用类实现链接列表开发共同努力的课程提供句柄类的示例。

何时使用value类

Value类对象行为类似于普通MATLAB变量。典型使用值类是定义数据结构。例如,假设要定义一个类以表示多项式。此类可以定义一个属性以包含多项式的系数列表。它可以实现使您能够在多项式对象上执行各种操作的方法。例如,在不将对象转换为另一个类的情况下,实现添加和乘法。

值类是合适的,因为您可以复制多项式对象并具有两个对象是相同多项式的相同表示。有关value类的示例,请参阅MATLAB内置类型的子类

有关MATLAB通过价值语义的信息,请参阅避免不必要的数据副本

何时使用句柄类

处理对象在专用环境中是有用的,其中对象表示物理对象,例如图形或外部设备而不是像数字或矩阵等数学对象。处理对象是句柄类的推导,它提供了功能和侦听器,析构函数方法和对动态属性的支持。金宝app

何时使用句柄类:

  • 没有两个类实例可以具有相同的状态,使得无法精确副本。例如:

    • 图形对象(例如行)的副本在其父母的子父母列表中具有不同的位置,而不是复制的对象。因此,两个对象不相同。

    • 列表中的节点或具有特定连接到其他节点的树的节点 - 没有两个节点可以具有相同的连接。

  • 该类表示物理的和惟一的对象,如串行端口和打印机。

  • 该类表示像图形组件等可见对象。

  • 该类定义事件并在发生事件时通知侦听器(通知是一个句柄类方法)。

  • 班级通过致电来创建听众处理班级AddListener.方法。

  • 这个类继承了动态备注班级(一个子类处理)因此,实例可以定义动态属性。

  • 这个类继承了matlab.mixin.setget.班级(一个子类处理)因此它可以实现图形对象样式设置/获取接口以访问属性值。

  • 您要创建一个单例类或一个类,在其中跟踪构造函数中的实例数。

  • 类的实例无法共享状态,例如链接列表中的节点。

相关的话题