主要内容

类组件

类的构建块

MATLAB®将类定义代码组织成由关键字分隔的模块块。所有关键字都有一个关联结束声明:

  • classdef结束……-所有类组件的定义

  • 属性结束……-属性名称声明、属性属性规范、默认值赋值

  • 方法…结束—方法签名、方法属性和函数代码的声明

  • 事件…结束-事件名称和属性的声明

  • 枚举…结束-枚举类的枚举成员和枚举值的声明

性质方法事件枚举关键字是否只在一个classdef块。

类定义块

classdef块包含以开头的文件中的类定义classdef关键字,并以结束关键字。

classdefClassAttributes类名称<超类...结束

例如,这个classdef定义一个名为MyClass子类的处理类。这个类也被定义为密封的,所以你不能使用从这个类继承。

classdef(密封)MyClass <句柄...结束

看到classdef有关更多语法信息,请参见。

属性块

一个性质块包含属性定义,包括可选的初始值。为每一组唯一的属性规范使用单独的块。每个属性块以性质关键字,并以结束关键字。

性质(PropertyAttributesPropertyName大小验证器} =默认值结束

例如,这个类定义了一个私有属性建议1类型的使用默认值。

classdefMyClass性质(SetAccess=private)Prop1= 12结束...结束

看到属性定义为更多的信息。

方法阻止

一个方法块包含类方法的函数定义。为每一组唯一的属性规范使用单独的块。每个方法块都以方法关键字,并以结束关键字。

方法(方法属性)功能对象=MethodName(arg1,…)…结束

例如,该类定义了一个受保护的方法我的方法

classdefMyClass方法(访问=受保护)作用__arg1 obj = myMethod (obj)...结束结束结束

看到定义类方法和函数为更多的信息。

MATLAB不同于c++和Java等语言®在这个特殊的隐藏类中,对象被传递给所有方法。必须显式地将类的对象传递给方法。

使用MyClass例子中,调用我的方法使用对象obj类和函数或点语法的关系:

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

有关详细信息,请参阅方法请求

事件块

事件块(每个唯一的属性规范集对应一个)包含该类声明的事件名称。的事件块以事件关键字,并以结束关键字。

classdef类名称事件(EventAttributes事件名结束……结束

例如,此类定义了一个名为状态变化李斯特访问设置为受保护的

classdefEventSource事件StateChanged . (ListenAccess = protected结束...结束

看到事件为更多的信息。

属性规范

属性语法

属性修改类和类组件(属性、方法和事件)的行为。属性使您能够定义有用的行为,而无需编写复杂的代码。例如,您可以通过设置其属性来创建只读属性SetAccess属性为private,但保留其获取访问权限属性设置为public。

性质(SetAccess = private) ScreenSize = getScreenSize结束

所有类定义块(classdef性质方法事件)支万博1manbetx持特定属性。所有属性都有默认值。仅在希望更改默认值的情况下指定属性值。

请注意

在任何组件块中只指定一个特定属性的值一次。

属性描述

有关受支持的属性列表,请参万博1manbetx见:

属性值

指定属性值时,这些值会影响定义块中定义的所有组件。定义具有不同属性设置的特性需要多个特性块。在逗号分隔的列表中指定多个属性。

属性(SetObservable = true结束属性(SetAccess = private, Hidden = true

简单的语法符合事实的/属性

对于值为的属性,可以使用更简单的语法符合事实的。仅属性名称就意味着true,而将not运算符(~)添加到名称中则意味着false。例如,定义静态方法块的这两种方法是等效的。

方法(静态)...结束方法(Static = true)...结束

类似地,这三种定义非静态方法块的方法是等效的。所有具有逻辑值的属性的默认值为,因此可以忽略该属性以获取默认行为。

方法...结束~方法(静态)...结束方法(静态=假)...结束

枚举类

枚举类是定义一组固定名称的专门化类,这些名称表示单一类型的值。枚举类使用枚举块,该块包含类定义的枚举成员。

枚举块以枚举关键字,并以结束关键字。

classdef类名称<超类枚举EnumerationMember结束……结束

例如,该类定义了两个表示逻辑值的枚举成员符合事实的

classdef布尔逻辑枚举否(0)是(1)结束结束

看到定义枚举类为更多的信息。

相关信息

创建一个简单的类

包含类定义的文件夹