繁体   English   中英

如何在Matlab中调用get方法?

[英]How do I call get method in matlab?

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吗?

您提供的代码有两个问题。 首先,枚举类是Matlab中的一种特殊类型的类。 您可能需要阅读有关Matlab中一般的枚举类及其限制的更多信息

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM