2017-10-18 43 views
0

我一直在学习MATLAB文档中的类,并注意到他们已经推荐了两种方法来做同样的事情,但我想知道它们之间的区别或者使用它们的优点是。在此,在类的方法部分中,是两种看似-相同功能:在方法中分配有或没有“set”属性的类值的优点?

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

方法BasicClass是你的类的构造函数。 考虑你的例子,即使结果相同,区别在于使用方法set.Value,你将能够更新现有对象的参数Value,而直接调用BasicClass将在每次函数调用时创建一个新对象。

相关问题