所有类方法都必须在中定义method
阻碍。本小节末尾介绍了该规则的例外情况。那些method
块可以具有指定访问权限的附加属性,或者这些方法是否是静态的,即可以在不创建该类的对象的情况下调用的方法。
classdef some_class方法函数obj=some_class()disp(“新建实例”);endfunction函数disp(obj)disp(“这是some_class.”);endfunction endmethods方法(访问=mode)函数r=func(obj,r)r=2*r;endfunction endmethods方法(静态=真)函数c=周长(半径)c=2*pi().*半径;endfunction endmethodsendclassdef
类的构造函数在中语句method
块和必须与类具有相同的名称,并且只有一个作为其类的另一个对象的输出参数。
也可以重载内置或继承的方法,如disp
函数来告诉Octave对象的some_类
应显示(详见类方法).
通常,方法定义中的第一个参数始终是从中调用它的对象。类方法可以通过将对象作为第一个参数传递给该方法来调用,也可以通过调用后面跟着一个点的对象(.
)和方法的名称以及随后的参数:
>>obj=some_class();已创建新实例。>>disp(obj);#两者都是>>obj.disp();#相同的
在里面some_类
,方法函数
在中定义method
块设置通道
把某事归因于某人mode,是其中之一:
平民的
这些方法可以从任何地方访问。
私有的
只能从其他类方法访问这些方法。该类的子类无法访问它们。
受保护的
只能从其他类方法和该类的子类访问这些方法。
方法的默认访问权限为平民的
.
最后,方法圆周
在静态中定义method
块,并且可以在不创建的对象的情况下使用some_类
。这对于不依赖于任何类属性的方法非常有用。类名和静态方法的名称,用句点(.
),调用thistatic方法。与非静态方法相比,即使使用的对象调用,该对象也不会作为第一个参数传递some_类
.
>>某类电路(3)⇒ ans=18.850>>obj=some_class();已创建新实例。>>物体循环(3)⇒ ans=18.850
此外,类方法可以定义为文件夹中的函数,该文件夹与前缀为“”的类同名@符号(详见创建类). 主要classdef
文件也必须存储在这个类文件夹中。
版权所有 © 2024 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号