对多个属性MATLAB

时间:2016-01-07 12:27:54

标签: matlab class oop setter

我有几个使用基本相同的set方法的属性:

classdef MyClass

    properties
        A
        B
    end

    methods

        function mc = MyClass(a,b)   % Constructor
            mc.A = a;
            mc.B = b;
        end

        function mc = set.A(mc, a) % setter for A
            if a > 5
                mc.A = a;
            else
                error('A should be larger than 5');
            end
        end

        function mc = set.B(mc, b) %setter for B
            if b > 5
                mc.B = b;
            else
                error('B should be larger than 5');
            end
        end


    end


end
  1. 对于变量setA,是否只能使用一个B函数? (请注意,error函数将属​​性名称用作字符串。)

  2. 建议只使用一个set功能吗?使用一个set函数有什么可能的缺点?

1 个答案:

答案 0 :(得分:1)

唯一真正的方法是将公共代码提取到另一个函数,并从setter中调用它:

struct