主要内容

类使用哪一种

值和处理类的例子

处理和价值类在不同的情况下是有用的。例如,值类允许您创建数组的类具有相同的行为是MATLAB®数字类。

代表多项式与类表示结构化数据类提供值类的例子。

处理类允许您创建的对象不止一个函数或对象可以共享。处理对象允许更复杂的交互对象之间彼此因为他们允许对象引用。

实现链表类开发类一起工作提供了一个处理类的例子。

何时使用值类

像正常的MATLAB变量值类对象。一个典型的使用价值的类是定义数据结构。例如,假设您想要定义一个类来表示多项式。这个类可以定义一个属性包含一个多项式的系数列表。它可以实现的方法,使您能够执行各种操作多项式对象。例如,实现加法和乘法没有将对象转换为另一个类。

一个值类是合适的,因为你可以复制一个多项式对象和有相同的两个相同的对象表示多项式。值类的一个例子,看到MATLAB内置类型的子类

MATLAB按值传递语义信息,请参阅避免不必要的副本的数据

何时使用处理类

处理对象是有用的在某些特殊情况下,一个对象代表一个物理对象,比如一个图表或外部设备,而不是像一个号码或矩阵的数学对象。处理处理的对象是派生类,它提供了功能,如事件和监听器,析构函数方法,并支持动态属性。万博1manbetx

使用句柄类时:

  • 没有类的两个实例可以有相同的状态,使它不可能有确切的副本。例如:

    • 图形对象的一个副本(如线)在其父母的孩子有不同的地位比对象被复制。因此,两个物体是不相同的。

    • 节点列表或树有特定的连接两个节点到其他节点——不可以有相同的连接。

  • 类代表物理和独特的对象串行端口和打印机。

  • 类代表可见物体的图形组件。

  • 类定义了事件和通知听众当一个事件发生时(通知是一个句柄类方法)。

  • 创建监听器通过调用的类处理addlistener方法。

  • 类的子类dynamicprops类的一个子类处理),这样可以定义实例动态属性。

  • 类的子类matlab.mixin.SetGet类的一个子类处理),这样就可以实现一个图形对象样式设置/获取接口来访问属性值。

  • 你想创建一个单例类或类的跟踪在构造函数中实例的数量。

  • 一个类的实例不能共享状态,如链表中的节点。

相关的话题