我一直在学习MATLAB文档中的类,并注意到他们已经推荐了两种方法来做同样的事情,但是我想知道它们之间有什么区别,或者使用它们的优势,可能。这里,在类的方法部分中,有两个看似相同的函数:
classdef BasicClass
properties
Value
end
methods
function obj = BasicClass(val)
if (val > 0)
obj.Value = val;
else
error('Value must be numeric')
end
end
function obj = set.Value(obj,val)
if (val > 0)
obj.Value = val;
else
error('Property value must be positive')
end
end
end
end
obj = BasicClass(val)
与最终使用obj = set.Value(obj,val)
的区别如何?任何指导都将非常感谢。
答案 0 :(得分:0)
方法BasicClass
是您班级的构造函数。
考虑一下您的示例,即使结果相同,不同之处在于使用方法set.Value
,您将能够更新现有对象的参数Value
,而直接调用{{1}将在每次函数调用时创建一个新对象。