用户定义的类
什么是类定义
MATLAB® 类定义是一个模板,用于描述该类所有实例共有的所有元素。类成员包括定义该类的属性、方法和事件。
使用代码块定义 MATLAB 类,并使用子代码块界定各个类成员的定义。有关这些代码块的语法信息,请参阅类组件。
类成员的属性
属性可以修改类定义代码块中定义的类行为和成员行为。例如,您可以指定方法是静态的或者属性是私有的。以下各节说明这些属性:
类定义可以提供信息,例如继承关系或类成员的名称,而无需实际构造类。请参阅Class Metadata。
有关属性语法的详细信息,请参阅指定属性。
类的种类
有两个种类的 MATLAB 类 - 句柄类和值类。
值类代表独立的值。值对象包含对象数据,并且不与对象的副本共享该数据。MATLAB 数值类型是值类。值对象在传递给函数并经其修改后,必须将修改后的对象返回给调用方。
句柄类创建引用对象数据的对象。实例变量的各个副本引用同一个对象。句柄对象在传递给函数并经其修改后,可直接影响调用方工作区中的对象而无需返回对象。
有关详细信息,请参阅句柄类和值类的比较。
构造对象
有关类构造函数的信息,请参阅类构造函数方法。
有关创建对象数组的信息,请参阅创建和初始化对象数组。
类的层次结构
有关如何定义类的层次结构的详细信息,请参阅Hierarchies of Classes — Concepts。
classdef 语法
类定义是由位于开头的 classdef
关键字和位于结尾的 end
关键字界定的代码块。文件只能包含一个类定义。
下图显示了 classdef
代码块的语法。classdef
关键字前面只能有注释和空行。
类代码
下面是一个简单的类定义,其中包含一个属性和一个构造函数方法,该方法在提供输入参量时设置属性的值。
classdef MyClass properties Prop end methods function obj = MyClass(val) if nargin > 0 obj.Prop = val; end end end end
要创建 MyClass
的对象,请将类定义保存在与该类同名的 .m
文件中,并使用必要的参量调用构造函数:
d = datestr(now); o = MyClass(d);
使用圆点表示法访问属性值:
o.Prop
ans = 10-Nov-2005 10:38:14
构造函数应该支持无参量语法,以便 MATLAB 可以创建默认对象。有关详细信息,请参阅构造函数不要求输入参数的情况。
有关类定义的各部分的详细信息,请参阅类组件