为什么 MATLAB 将内置方法的方法属性设置为“隐藏”?

Why does MATLAB set the Method Attributes of built-in methods to 'Hidden'?

提问人:bokabokaboka 提问时间:8/25/2023 最后编辑:Wolfiebokabokaboka 更新时间:8/25/2023 访问量:36

问:

'empty' 是 MATLAB 内置方法。在文档页面的底部,提到:“empty 是所有非抽象 MATLAB® 类的隐藏、公共、静态方法。

有一个问题,如果用户构建一个类方法,由于某些原因,用户可能希望将类方法设置为“隐藏”,以防止其他人看到它。但是,在MATLAB内置方法的情况下,每个人都知道它们的存在。那么,MATLAB 将此方法的属性设置为“隐藏”的目的是什么?

如果输入 mc=?SubClass 在命令行中打开 mc-->MethodList 在工作区中,你会发现两个方法,一个是 'SubClass',另一个是 'empty'。事实上,'empty'方法并不是完全隐藏的,那么将内置方法设置为'Hidden'有什么意义呢?

classdef  SubClass < Base
    methods
        function obj=SubClass(value)
            obj=obj@Base(value);
        end
    end
end

Base.m

classdef Base
    properties(Access=private)
        a;
    end
    methods
        function obj=Base(value)
            obj.a=value;
        end
    end
    methods (Access=private)
        function Fun(obj)
            disp(num2str(obj.a));
        end
    end
end
MATLAB OOP 方法

评论

2赞 Wolfie 8/25/2023
使用前请仔细阅读标签说明,此问题与 或 无关。至于你的问题,只有2007年在MathWorks做出这个决定的人才能回答,否则几乎只会吸引基于意见的答案matlab-guidematlab-deployment
1赞 Cris Luengo 8/25/2023
我的猜测是内置方法是隐藏的,以免使类的输出和文档混乱。它没有其他效果。您可以显式定义方法以将其列出。methods

答: 暂无答案