最好从文档开始
"Comparison of Handle and Value Classes"
. 从最上面:
一
价值
类构造函数返回一个与分配给它的变量关联的对象。如果您重新分配这个变量,matlab_?将创建原始对象的独立副本。如果将此变量传递给函数进行修改,则该函数必须将修改后的对象作为输出参数返回。
一
手柄
类构造函数返回一个句柄对象,该对象是对所创建对象的引用。您可以将handle对象分配给多个变量,或者将其传递给函数,而不必让matlab复制原始对象。修改作为输入参数传递的句柄对象的函数不需要返回该对象。
换句话说,值类需要返回一个修改过的对象(这是一个与原始对象不同的新对象),而句柄类则不需要返回。任何一个类的构造函数都必须返回一个对象,因为它实际上是
构造
它。
一些好的附加阅读是
"Which Kind of Class to Use"
链接到每种类型的类对象的几个有用的示例。看看
DocPolynom
value class example
,您可以看到该属性
set
方法必须返回修改后的对象,而
dlnode
handle class example
它的构造函数只需要一个输出。注意你
能够
仍然从句柄类方法返回一个对象(如果需要),但它不是
必修的
.