2015-01-01 41 views
2

如您所知,我們可以在@folder的單獨文件中定義類定義和方法定義。如果我們擁有方法的屬性,我們如何能做到這一點?我MATLAB OOP文件,我們應該在方法文件中使用此結構中讀到:在帶有MATLAB屬性的單獨文件中定義方法

​​

但我們有這個文件夾類定義在另一個文件(myClass),所以如果我們有這樣的結構,我們有兩個類定義文件。其中一個具有屬性定義,另一個具有方法屬性(兩個同名的文件!)。如果我們將名稱(myClass)的classdef更改爲函數名稱(testdata),我們在MATLAB中有一個錯誤。我該怎麼辦?

回答

2

如果您使用@-文件夾和單獨文件定義課程,則不需要兩個類定義文件。您需要一個類定義文件(基本上就像您在問題中定義的那樣)和一個包含您的方法的單獨文件,作爲函數實現。

例如:

@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 

請注意,您只需要包括存根如果需要修改defa的方法屬性,請在類定義文件中定義方法ULT。如果是公共方法(非靜態,非隱藏,非密封,非抽象等),則根本不需要包含它,只需將文件包含在@-文件夾中即可。

相關問題