主要内容

类的组成部分

班级构建模块

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

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

  • 属性结束……-属性名称的声明,属性属性的说明,默认值的分配

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

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

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

属性方法事件,枚举关键字是否只在classdef块。

类定义块

classdef属性开始的文件中包含类定义classdef关键字并以结束关键字。

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

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

classdefMyClass <句柄...结束

看到classdef获取更多语法信息。

属性块

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

属性(PropertyAttributesPropertyName大小验证器} =DefaultValue结束

例如,该类定义了一个私有属性Prop1类型的使用默认值。

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

看到初始化属性值获取更多信息。

方法阻止

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

方法(MethodAttributes)函数obj =MethodName(__arg1、…)…结束

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

classdefMyClass方法(访问=受保护)函数obj = myMethod(obj,arg1)...结束结束结束

看到方法的语法获取更多信息。

MATLAB不同于c++和Java等语言®在这种情况下,必须显式地将类的对象传递给方法。

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

obj = MyClass;r = MyMethod(obj,arg1);r = obj.MyMethod(arg1);

有关更多信息,请参见方法调用

事件块

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

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

例如,该类定义了一个名为StateChangeListenAccess设置为受保护的

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

看到事件获取更多信息。

属性说明

属性语法

属性修改类和类组件(属性、方法和事件)的行为。属性使您无需编写复杂的代码就可以定义有用的行为。例如,您可以创建一个只读属性SetAccess属性为私有,但保留其GetAccess属性设置为public。

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

所有类定义块(classdef属性方法,事件)支金宝app持特定的属性。所有属性都有默认值。仅在希望更改默认值的情况下指定属性值。

请注意

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

属性描述

有关受支持属性的列表,请参金宝app见:

属性值

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

属性(SetObservable = true) AccountBalance结束属性(SetAccess = private, Hidden = true) SSNumber CreditCardNumber结束

简化语法真正的/属性

对于值为的属性,可以使用更简单的语法真正的.属性名本身表示为真,在名称上添加not操作符(~)表示为假。例如,这两种定义静态方法块的方法是等效的。

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

类似地,这三种定义非静态方法块的方法是等效的。所有接受逻辑值的属性都有一个默认值,因此可以省略该属性以获得默认行为。

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

枚举类

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

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

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

例如,该类定义了两个表示逻辑值的枚举成员而且真正的

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

看到定义枚举类获取更多信息。

相关信息

创建简单类

包含类定义的文件夹