Matlab中在单独文件中定义方法

目录

在单独文件中定义方法

类文件夹

在函数文件中定义方法

在 classdef 文件中指定方法特性

必须在 classdef 文件中定义的方法


在单独文件中定义方法

类文件夹

        可以在不同于类定义文件的文件中定义类方法,但有某些例外(可以参考必须在classdef文件中定义的方法)。

        要为类定义使用多个文件,请将类文件放在文件夹中,该文件夹的名称以 @ 字符开头,后跟类的名称(这称为类文件夹)。确保类文件夹的父文件夹位于 MATLAB® 路径上。

        如果类文件夹包含在一个或多个包文件夹中,则顶层包文件夹必须位于 MATLAB 路径上。

        例如,文件夹 @MyClass 必须包含文件 MyClass.m(其中包含 classdef 代码块),还可以包含其他方法和函数(定义在扩展名为 .m 的文件中)。文件夹 @MyClass 可以包含多个文件:

@MyClass/MyClass.m
@MyClass/subsref.m
@MyClass/subsasgn.m
@MyClass/horzcat.m
@MyClass/vertcat.m
@MyClass/myFunc.m

方法文件的类型

        MATLAB 将类文件夹中的任何函数文件均视为类的方法。函数文件可以是 MATLAB 代码 (.m)、实时代码文件格式 (.mlx)、MEX 函数(平台相关的扩展名)和 P 代码文件 (.p)。文件的基本名称必须为有效的 MATLAB 函数名称。有效的函数名称以字母字符开头,并且可以包含字母、数字或下划线。

在函数文件中定义方法

        要在类文件夹的单独文件中定义方法,请在一个文件中创建函数。不要在该文件中使用 method-end 关键字。像任何函数一样,用函数名称命名文件。

        在 myFunc.m 文件中,实现以下方法:

function output = myFunc(obj,arg1,arg2)
   ...% code here
end

        在方法代码块中声明 classdef 文件中的函数签名是一个不错的做法:

classdef MyClass
   methods
      output = myFunc(obj,arg1,arg2)
   end
   ...
end

在 classdef 文件中指定方法特性

        如果为在单独的函数文件中定义的方法指定方法特性,请将方法签名包含在 classdef 文件的 methods 代码块中。此方法代码块指定应用于方法的特性。

        例如,以下代码显示在 methods 代码块中将 Access 设置为 private 的方法。方法实现位于单独的文件中。不要在 methods 代码块中包含 function 或 end 关键字。仅包括显示输入和输出参数的函数签名。

classdef MyClass
   methods (Access = private)
      output = myFunc(obj,arg1,arg2)
   end
end

        在 @MyClass 文件夹中名为 myFunc.m 的文件中定义函数:

function output = myFunc(obj,arg1,arg2)
   ...
end

在单独文件中定义静态方法

        要创建静态方法,请将方法 Static 属性设置为 true,并在classdef文件的静态方法代码块中列出函数签名。在函数名称中包含输入和输出参数。例如:

classdef MyClass
...
   methods (Static)
      output = staticFunc1(arg1,arg2)
      staticFunc2
   end
   ...
end

        使用相同的函数签名在单独的文件中定义函数。例如,在文件 @MyClass/staticFunc1.m 中:

function output = staticFunc1(arg1,arg2)
   ...
end
在 @Myclass/staticFunc2.m 中:

function staticFunc2
   ...
end

必须在 classdef 文件中定义的方法

        在classdef文件中定义以下方法。不能在单独文件中定义这些方法:

  • 类构造函数

  • 所有在其名称中使用圆点的函数,包括:

    • 转换器方法,这些方法必须使用包名称作为类名的一部分,因为类包含在包中

    • 属性 set 和 get 访问方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值