【问题标题】:Define method in a separate file with attributes in MATLAB在 MATLAB 中使用属性在单独的文件中定义方法
【发布时间】:2015-01-01 09:27:21
【问题描述】:

如您所知,我们可以在@folder 的单独文件中定义类定义和方法定义。如果我们有方法的属性,我们怎么能做到这一点?我在 MATLAB OOP 文档中读到我们应该在方法文件中使用这个结构:

classdef myClass
  method (att = value,...)
    tdata = testdata(obj,arg1,arg2)
 end 
end

但是我们在这个文件夹中有另一个文件(myClass)用于类定义,所以如果我们有这个结构,我们就有两个类定义文件。其中一个具有属性定义,另一个具有方法属性(两个具有相同名称的文件!)。如果我们将上面的classdef name(myClass) 更改为函数 name(testdata),我们在 MATLAB 中会出错。我该怎么办?

【问题讨论】:

    标签: matlab oop


    【解决方案1】:

    如果您使用@-文件夹和单独的文件定义您的类,则不需要两个类定义文件。您需要一个单独的类定义文件(基本上就像您在问题中定义的那样)和一个单独的文件,其中仅包含您的方法,作为函数实现。

    例如:

    @MyClass\MyClass.m

    classdef MyClass
        properties (GetAccess = public, SetAccess = private)
            myGreeting
        end
        methods (Access = public)
            function obj = MyClass
                obj.myGreeting= 'hello'
            end
            function sayhello(obj, name)
                txt = obj.getText(name);
                disp(txt)
            end
        end
        methods (Access = private)
            txt = getText(obj, name)
        end
    end
    

    @MyClass\getText.m

    function txt = getText(obj, name)
        txt = [obj.myGreeting, ' ', name];
    end
    

    请注意,如果您需要修改默认的方法属性,则只需在类定义文件中包含方法的存根定义。如果它是公共方法(以及非静态、非隐藏、非密封、非抽象等),则根本不需要包含它,只需将文件包含在 @-文件夹中.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-10
      • 2011-05-25
      • 2021-07-02
      • 2020-09-10
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 2022-11-30
      相关资源
      最近更新 更多