主要内容

定义类方法和函数

块的方法

定义方法为MATLAB®函数在一个方法块,在classdef块。构造函数方法具有与类相同的名称,并返回类的初始化对象。要创建具有该实例唯一属性值的对象,请在类构造函数中为属性赋值。用。结束所有方法函数结束声明。

classdef类名称属性PropertyName结束方法函数obj =类名称(__arg1、…)obj。PropertyName= __arg1;...结束函数ordinaryMethod(obj __arg1…)…结束结束方法(静态)函数staticMethod(__arg1、…)…结束结束结束

方法调用语法

MATLAB不同于c++和Java等语言®因为没有特殊的隐藏类对象传递给所有方法。必须显式地将类的对象传递给方法。最左边的参数不需要是类对象,参数列表可以有多个对象。MATLAB调度到由类定义的方法的主导参数。有关更多信息,请参见方法调用

方法在调用时必须在MATLAB路径上。例如,如果您创建一个对象,然后将当前文件夹更改为方法文件不可见的文件夹,则调用该方法时将发生错误。

在MATLAB代码中始终使用区分大小写的方法名。

普通的方法

使用MATLAB函数语法或点表示法调用普通方法。例如,假设您有一个定义ordinaryMethod.传递定义类的对象和所需的任何参数。

classdefMyClass方法函数= ordinaryMethod (obj __arg1)...结束结束结束

调用ordinaryMethod使用对象obj类的语法:

obj = MyClass;r = ordinaryMethod (obj __arg1);r = obj.ordinaryMethod (__arg1);

静态方法

静态方法不需要类的对象。要调用静态方法,请在方法名前面加上类名,以便MATLAB可以确定是什么类定义了该方法。

classdefMyClass方法(静态)函数= staticMethod (__arg1)...结束结束结束

调用staticMethod使用语法类名称methodname

r = MyClass.staticMethod (__arg1);

看到静态方法有关不需要其类的对象的方法的信息。

私有方法

使用访问方法属性以创建私有方法。您不需要使用私人文件夹。

看到方法属性查看方法属性列表。

关于方法的更详细信息

方法

与课堂有关的函数

您可以在包含类定义的文件中定义非类方法的函数(classdef).的外部定义局部函数classdef——结束块,但在与类定义相同的文件中。函数中定义classdef文件的工作方式类似于局部函数。您可以从同一个文件中的任何地方调用这些函数,但它们在定义它们的文件之外是不可见的。

本地函数classdef文件对于只在该文件中使用的实用函数很有用。这些函数可以接受或返回作为类实例的参数,但这不是必需的,就像普通方法一样。例如,下面的代码定义myUtilityFcn外的classdef布洛克:

classdefMyClass属性PropName结束方法函数obj = MyClass(arg1)PropName = __arg1;结束结束结束% classdef的结束函数myUtilityFcn...结束

您还可以创建包函数,在调用这些函数时需要使用包名。

如何重载函数和操作符

通过定义与要重载的函数同名的类方法,重载类的MATLAB函数。当用类的实例调用函数时,MATLAB分派给类方法。

通过使用适当的名称定义类方法,可以重载MATLAB算术、逻辑、关系和索引操作符。

看到处理为该类定义的操作列表。派生的所有类处理继承这些方法。

在单独文件中定义方法的规则

以下规则适用于在单独的文件中定义的方法:

  • 要为在单独文件中定义的方法指定属性,请在classdef文件。使用methods块指定属性值。

  • 将方法块中声明的语法(如果使用的话)与方法的语法相匹配函数线。

  • 单独的文件必须在类中()文件夹中。

  • 类构造函数方法必须在classdef文件。构造函数不能在单独的文件中。

  • 处理类删除方法必须定义在classdef文件。的删除方法不能放在单独的文件中。

    函数名中使用圆点的所有函数必须在classdef文件,包括:

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

    • 属性设置和获取访问方法

有关在单独的文件中定义方法的更多信息,请参见单独文件中的方法

相关的话题