如何在Matlab中调用get方法?

时间:2018-09-03 11:32:14

标签: matlab oop enums getter-setter getter

classdef Untitled
enumeration
    M('monday','first day')
    T('tuesday','second day')
end

properties(SetAccess=private)
    name
    description
end

methods
    %constructor
    function obj = Untitled(name, description)
        obj.name = name
        obj.description = description
    end

    %getter
    function name = get.name(obj)
    end

    %getter
    function description = get.description(obj)
    end



end

end

创建无标题实例后,如何在命令窗口中调用get方法?我是Matlab的新手,不确定是否有可能,因为我读到不能直接调用getter和setter吗?

1 个答案:

答案 0 :(得分:0)

您提供的代码有两个问题。首先,枚举类是Matlab中的一种特殊类型的类。您可能想在Matlab中阅读有关enumeration classes的更多信息,以及它们的restrictions

如果我假设您不尝试创建枚举类,并删除函数的该部分,那么下一个问题是您的吸气剂什么也不做。您至少应该这样做:

function name = get.name(obj)
    name = obj.name
end

但是,如果您要做的只是返回属性的值,则甚至不需要创建get函数。这是一些有效的代码:

classdef Untitled

    properties(SetAccess=private)
        name
        description
    end

    methods
        %constructor
        function obj = Untitled(name, description)
            obj.name = name;
            obj.description = description;
        end

    end

end

那么您可以做:

myobj = Untitled('myname','mydesc');
myobj.name
myobj.description