MATLAB®将类定义代码组织成由关键字分隔的模块块。所有关键字都有一个关联结束
声明:
classdef结束……
-所有类组件的定义
属性结束……
-属性名称的声明,属性属性的说明,默认值的分配
方法结束……
—方法签名、方法属性和函数代码的声明
事件结束……
—事件名称和属性的声明
枚举结束……
-枚举类的枚举成员和枚举值的声明
属性
,方法
,事件
,枚举
关键字是否只在一个classdef
块。
的classdef
的文件中包含类定义classdef
关键字,并以结束
关键字。
classdef(ClassAttributes)类名称<超类...结束
例如,这个classdef
定义一个名为MyClass
子类的处理
类。这个类也被定义为密封的,所以你不能使用从这个类继承。
classdef(密封)MyClass <句柄...结束
看到classdef
获取更多语法信息。
一个属性
块包含属性定义,包括可选的初始值。为每一组唯一的属性规范使用单独的块。每个属性块以属性
关键字,并以结束
关键字。
属性(PropertyAttributes)PropertyName大小类{验证器} =DefaultValue结束
例如,这个类定义了一个私有属性Prop1
类型的双
使用默认值。
classdefMyClass属性(SetAccess = private双= 12结束...结束
看到属性定义为更多的信息。
一个方法
块包含类方法的函数定义。为每一组唯一的属性规范使用单独的块。每个方法块都以方法
关键字,并以结束
关键字。
方法(MethodAttributes)函数obj =MethodName(__arg1、…)…结束
例如,该类定义了一个受保护的方法MyMethod
.
classdefMyClass方法(访问=保护)函数__arg1 obj = myMethod (obj)...结束结束结束
看到定义类方法和函数为更多的信息。
MATLAB不同于c++和Java等语言®在这个特殊的隐藏类中,对象被传递给所有方法。必须显式地将类的对象传递给方法。
使用MyClass
例子中,调用MyMethod
使用对象obj
类和函数或点语法的关系:
obj = MyClass;r = MyMethod (obj __arg1);r = obj.MyMethod (__arg1);
有关更多信息,请参见方法调用.
的事件
块(每个唯一的属性规范集对应一个)包含该类声明的事件名称。的事件
块以事件
关键字,并以结束
关键字。
classdef类名称事件(EventAttributes)EventName结束……结束
例如,这个类定义了一个名为StateChange
与ListenAccess
设置为受保护的
.
classdefEventSource事件StateChanged . (ListenAccess = protected结束...结束
看到事件为更多的信息。
属性修改类和类组件(属性、方法和事件)的行为。属性使您能够定义有用的行为,而无需编写复杂的代码。例如,您可以通过设置它来创建只读属性SetAccess
属性为private,但保留其GetAccess
属性设置为public。
属性(SetAccess = private) ScreenSize = getScreenSize结束
所有类定义块(classdef
,属性
,方法
,事件
)支万博1manbetx持特定属性。所有属性都有默认值。仅在需要更改默认值的情况下才指定属性值。
请注意
在任何组件块中只指定一个特定属性的值一次。
有关受支持的属性列表,请参万博1manbetx见:
当指定属性值时,这些值将影响定义块中定义的所有组件。用不同的属性设置定义属性需要多个属性块。在逗号分隔的列表中指定多个属性。
属性(SetObservable = true结束属性(SetAccess = private, Hidden = true
真正的
/假
属性对于值为的属性,可以使用更简单的语法真正的
或假
.属性名本身暗示为真,而将not操作符(~)添加到名称中暗示为假。例如,这两种定义静态方法块的方法是等价的。
方法(静态)...结束方法(Static = true)...结束
类似地,这三种定义非静态方法块的方法是等效的。所有具有逻辑值的属性的默认值为假
,因此可以省略该属性以获得默认行为。
方法...结束~方法(静态)...结束方法(Static = false)...结束
枚举类是定义一组固定名称的专门化类,这些名称表示单一类型的值。枚举类使用枚举
块,该块包含类定义的枚举成员。
枚举块以枚举
关键字,并以结束
关键字。
classdef类名称<超类枚举EnumerationMember结束……结束
例如,该类定义了两个表示逻辑值的枚举成员假
和真正的
.
classdef布尔<逻辑枚举否(0)是(1)结束结束
看到定义枚举类为更多的信息。