Matlab以优雅的方式为OOP定义类函数

Matlab以优雅的方式为OOP定义类函数,matlab,oop,Matlab,Oop,我正在尝试用MatlabOOP实现一个小的示例函数 运行代码为: classdef Cat < handle properties meowCount = 0; end methods function obj = Cat() % all initializations, calls to base class, etc. here, end function Meow(obj) disp('meowww');

我正在尝试用MatlabOOP实现一个小的示例函数

运行代码为:

classdef Cat < handle
properties
    meowCount = 0; 
end

methods 
    function obj = Cat()            % all initializations, calls to base class, etc. here,
    end

    function Meow(obj)
        disp('meowww'); 
        obj.meowCount = obj.meowCount + 1;
    end
end    
end

定义类的方法有两种方法。更新的、更可移植的方法是在相同的
classdef
文件中定义它们。您还可以将方法编写为单独的M文件函数和。请注意,有些方法。您仍然可以通过helper函数将单独的文件方法定义为和private。这是一个小技巧,这就是为什么最好将所有内容都放在
classdef
文件中,除非您有一个非常大的项目。

定义类的方法有两种方法。更新的、更可移植的方法是在相同的
classdef
文件中定义它们。您还可以将方法编写为单独的M文件函数和。请注意,有些方法。您仍然可以通过helper函数将单独的文件方法定义为和private。这是一个小技巧,这就是为什么最好将所有内容都放在
classdef
文件中,除非您有一个非常大的项目。

定义类的方法有两种方法。更新的、更可移植的方法是在相同的
classdef
文件中定义它们。您还可以将方法编写为单独的M文件函数和。请注意,有些方法。您仍然可以通过helper函数将单独的文件方法定义为和private。这是一个小技巧,这就是为什么最好将所有内容都放在
classdef
文件中,除非您有一个非常大的项目。

定义类的方法有两种方法。更新的、更可移植的方法是在相同的
classdef
文件中定义它们。您还可以将方法编写为单独的M文件函数和。请注意,有些方法。您仍然可以通过helper函数将单独的文件方法定义为和private。这是一个小技巧,这就是为什么最好将所有内容都放在
classdef
文件中,除非您有一个非常大的项目。

创建一个名为
@Cat
的文件夹

@Cat
中,放置以下文件:

m类

classdef Cat < handle
    properties
        meowCount = 0; 
    end

    methods 
        function obj = Cat()
        end

        Meow(obj) % this is optional, and just indicates the function signature

    end    
end
function Meow(obj)
    disp('meowww'); 
    obj.meowCount = obj.meowCount + 1;
end
移出
@Cat
文件夹,并确保它(或其父文件夹)位于您的路径上。然后试试你的例子

如果像这样使用
@
文件夹来包含类,大多数方法(虽然不是构造函数,也不是属性get/set方法)都可以移动到外部文件中


如果需要,可以在主classdef文件中包含不带实现的函数签名。这有时是可选的,但如果您希望将方法的访问级别更改为默认值,则必须执行此操作。

创建一个名为
@Cat
的文件夹

@Cat
中,放置以下文件:

m类

classdef Cat < handle
    properties
        meowCount = 0; 
    end

    methods 
        function obj = Cat()
        end

        Meow(obj) % this is optional, and just indicates the function signature

    end    
end
function Meow(obj)
    disp('meowww'); 
    obj.meowCount = obj.meowCount + 1;
end
移出
@Cat
文件夹,并确保它(或其父文件夹)位于您的路径上。然后试试你的例子

如果像这样使用
@
文件夹来包含类,大多数方法(虽然不是构造函数,也不是属性get/set方法)都可以移动到外部文件中


如果需要,可以在主classdef文件中包含不带实现的函数签名。这有时是可选的,但如果您希望将方法的访问级别更改为默认值,则必须执行此操作。

创建一个名为
@Cat
的文件夹

@Cat
中,放置以下文件:

m类

classdef Cat < handle
    properties
        meowCount = 0; 
    end

    methods 
        function obj = Cat()
        end

        Meow(obj) % this is optional, and just indicates the function signature

    end    
end
function Meow(obj)
    disp('meowww'); 
    obj.meowCount = obj.meowCount + 1;
end
移出
@Cat
文件夹,并确保它(或其父文件夹)位于您的路径上。然后试试你的例子

如果像这样使用
@
文件夹来包含类,大多数方法(虽然不是构造函数,也不是属性get/set方法)都可以移动到外部文件中


如果需要,可以在主classdef文件中包含不带实现的函数签名。这有时是可选的,但如果您希望将方法的访问级别更改为默认值,则必须执行此操作。

创建一个名为
@Cat
的文件夹

@Cat
中,放置以下文件:

m类

classdef Cat < handle
    properties
        meowCount = 0; 
    end

    methods 
        function obj = Cat()
        end

        Meow(obj) % this is optional, and just indicates the function signature

    end    
end
function Meow(obj)
    disp('meowww'); 
    obj.meowCount = obj.meowCount + 1;
end
移出
@Cat
文件夹,并确保它(或其父文件夹)位于您的路径上。然后试试你的例子

如果像这样使用
@
文件夹来包含类,大多数方法(虽然不是构造函数,也不是属性get/set方法)都可以移动到外部文件中


如果需要,可以在主classdef文件中包含不带实现的函数签名。这有时是可选的,但如果您希望将方法的访问级别更改为默认值,则有必要进行更改。

处理classdef文件中杂乱内容的最佳方法是使用代码折叠。可以折叠单个方法和整个方法块。通过这种方式,您可以通过将相关方法分组到同一个方法块中,轻松地将classdef文件组织得尽可能整洁。折叠您当时未使用的任何方法/块

此外,可以使用编辑器功能区选项卡中的“转到”按钮选择要查看的特定方法(如果它们都在同一文件中定义)

一开始,在单独的文件中编写方法似乎是一个很好的解决方案,但是如果您有一个包含许多方法的类,一次打开许多文件会变得非常麻烦。与C++不同,只能对每个文件定义一种方法。结果真的是一团糟

另见:


处理classdef文件中混乱的最好方法是使用代码折叠。可以折叠单个方法和整个方法块。通过这种方式,您可以通过将相关方法分组到同一个方法块中,轻松地将classdef文件组织得尽可能整洁。折叠您当时未使用的任何方法/块

此外,您还可以使用“转到”按钮