使用或不使用" set"分配类值的优点方法中的财产?

时间:2017-10-18 18:59:12

标签: matlab class oop

我一直在学习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)的区别如何?任何指导都将非常感谢。

1 个答案:

答案 0 :(得分:0)

方法BasicClass是您班级的构造函数。 考虑一下您的示例,即使结果相同,不同之处在于使用方法set.Value,您将能够更新现有对象的参数Value,而直接调用{{1}将在每次函数调用时创建一个新对象。