Matlab 中类的定义

在 Matlab 中定义一个名为 classname 类,需要在类名之前用 classdef 关键字来声明,并以 end 结束类的定义。classdef 语句之前除了空行和注释不能有其它代码,代码需要保存在与类名相同的 m 文件中,即 classname.m 文件。

定义类的文件可以放在 MATLAB 搜索路径下的文件夹中,也可以放置在搜索路径文件夹内的类文件夹。类文件夹的名字以 @ 开头,加上类的名字(如 @myclass)。更多信息参考Class Files and Folders.

1. 语法

classdef classname
   properties
      PropName
   end
   methods
      methodName
   end
   events
      EventName
   end
   enumeration
      EnumName
   end
end

2. 说明

MATLAB 以代码块来组织类的声明与定义,下面分别介绍。

2.1 classdef 代码块

参考链接

classdef 代码块内包含了类定义的全部元素,包含在一个以类名为文件名的m文件中。其结构为:

classdef (ClassAttributes) ClassName < SuperClass

end

2.1.1 ClassAttributes

参考链接

ClassAttributes 代表类的属性,其可选的属性和值如下:

属性可选值说明
Abstracttrue,false
(default = false)
当设定为 true 表示该类是一个抽象类,不能被实例化。
更多信息见 Abstract Classes
AllowedSubclassesmeta.class 对象或者是 meta.class 对象的元包向量列表中给出了可以继承该类的 meta.class 对象。
类名前使用?来指定meta.class对象。
更多信息见 Specify Allowed Subclasses
ConstructOnLoadtrue,false
(default = false)
当设为 true,MATLAB 会在从 MAT 文件中加载对象时调用构造函数。因此,应用构造函数不会在无参数调用时产生错误。
更多信息见 Initialize Objects When Loading
HandleCompatibletrue,false
(default = false)
当设为 true,这个类可以作为句柄类的父类。所有句柄类都是句柄兼容的。
更多信息见 Support Both Handle and Value Subclasses
Hiddentrue,false
(default = false)
当设为 true,类不会出现在 superclasseshelp 函数的输出结果中。
InferiorClassesmeta.class 对象或者是 meta.class 对象的元包向量使用该属性来确定在类中的优先等级。使用?来指定 meta.class 对象元包向量。
基本类总是比用户定义的优先等级高,不列在列表中。
更多参考Class Precedence 和 Dominant Argument in Overloaded Graphics Functions
Sealedtrue,false
(default = false)
当设定为 true,该类不能被继承。

说明:

  • 类属性不能被继承,所以父类的属性不会影响到子类。
  • 在括号中指定属性值,多个属性之间采用逗号分隔,如:

    classdef (Attribute1 = value1, Attribute2 = value2,…) ClassName

    end

2.1.2 SuperClass

SuperClass 为继承的类名字,如果要继承多个类,类与类之间用 & 连接。

2.2 Properties 代码块

参考链接

2.3 Methods 代码块

参考链接

2.4 Events 代码块

参考链接

2.5 Enumeration 类

参考链接

  • 24
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值