【问题标题】:How do I call get method in matlab?matlab如何调用get方法?
【发布时间】:2019-02-08 11:08:09
【问题描述】:
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

创建 Untitled 实例后,如何在命令窗口中调用 get 方法?我是 matlab 新手,不确定这是否可能,因为我读到不能直接调用 getter 和 setter?

【问题讨论】:

标签: matlab oop enums getter-setter getter


【解决方案1】:

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

如果我假设您没有尝试创建枚举类并删除函数的那部分,那么下一个问题是您的 getter 不做任何事情。你至少应该这样做:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-30
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多