主要内容

用户定义的类

什么是类定义

一个MATLAB®类定义是一个模板,其目的是提供对类的所有实例都通用的所有元素的描述。类成员是定义类的属性、方法和事件。

在代码块中定义MATLAB类,用子块描述各种类成员的定义。有关这些块的语法信息,请参见类组件

类成员的属性

属性修改类和类定义块中定义的成员的行为。例如,您可以指定方法是静态的或属性是私有的。以下章节描述了这些属性:

类定义可以提供信息,比如继承关系或类成员的名称,而不需要实际构造类。看到类元数据

看到指定属性有关属性语法的更多信息。

类型的类

有两种MATLAB类——句柄类和值类。

  • 值类代表独立的值。值对象包含对象数据,不能与对象的副本共享该数据。MATLAB数值类型是值类。函数传递给和修改的值对象必须向调用者返回一个修改过的对象。

  • 句柄类创建引用对象数据的对象。实例变量的副本引用同一个对象。函数传递给和修改的句柄对象会影响调用者工作空间中的对象,而不返回对象。

有关更多信息,请参见句柄类和值类的比较

构造对象

有关类构造函数的信息,请参见类的构造函数方法

有关创建对象数组的信息,请参见构造对象数组

类层次结构

有关如何定义类层次结构的更多信息,请参见类的层次结构-概念

classdef语法

类定义是由classdef关键字在开头结束关键字在最后。文件只能包含一个类定义。

下面的图表显示了a的语法classdef块。的前面只能有注释和空行classdef关键字。

类代码

下面是一个简单的类定义,其中包含一个属性和一个构造函数方法,该构造函数在提供输入参数时设置属性的值。

classdefMyClass属性道具结束方法函数obj = MyClass (val)如果Nargin > 0 obj。支持= val;结束结束结束结束

创建的对象MyClass,将类定义保存在00文件具有与类相同的名称,并使用任何必要的参数调用构造函数:

d = datestr(现在);o = MyClass (d);

使用点符号来访问属性值:

o.Prop
ans = 10- november -2005 10:38:14

构造函数应该支持无参数语法,以便MATLAB可金宝app以创建默认对象。有关更多信息,请参见没有输入参数构造函数要求

有关类定义组件的更多信息,请参见类组件

相关的话题