定义方法为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
文件,包括:
必须使用包名作为类名的一部分的转换器方法,因为类包含在包中
属性设置和获取访问方法
有关在单独的文件中定义方法的更多信息,请参见单独文件中的方法