主要内容

classdef

类定义关键字

语法

classdef (属性类名称<SuperclassNames属性(属性)…结束方法(属性)…结束事件(属性)…结束枚举…结束结束

描述

classdef……结束包含一个类定义。的第一行classdefBlock有这样的语法:

classdef (Attribute1 = value1Attribute2 = value2,……)类名称<SuperclassName1SuperclassName2&……

  • Attribute1 = value1Attribute2 = value2,……)-可选的类属性,以逗号分隔的属性名及其关联值列表指定。例如,这个语法定义了一个抽象类,其中包含一个受限制的允许子类列表:

    classdef(Abstract = true, AllowedSubclasses = {ClassA, ClassB}

    接受逻辑值的属性可以在没有显式值的情况下使用。在前面的例子中,指定摘要如果没有显式值,则将属性设置为真正的.有关更多信息,请参见类属性

  • 类名称—有效的类名以字母开头,可以包含字母、数字或下划线。将类保存在与类同名的文件中,文件扩展名为.m

  • SuperclassName1SuperclassName2&……-超类列表,以字符。有关从其他类派生类的更多信息,请参见子类定义

classdefBlock可以包含一个或多个类成员块:

  • 属性- - - - - -属性(属性)…结束定义一个属性块。类定义可以包含多个属性块,每个属性块指定应用于该特定块中的属性的不同属性设置。有关属性语法的更多信息,请参见属性的语法

  • 方法- - - - - -方法(属性)…结束定义一个方法块。类定义可以包含多个方法块,每个方法块指定应用于该特定块中的方法的不同属性设置。有关方法语法的更多信息,请参见定义类方法和函数

  • 事件- - - - - -事件(属性)…结束定义一个事件块。类定义可以包含多个事件块,每个事件块指定应用于特定块中的事件的不同属性设置。有关事件语法的详细信息,请参见事件和监听器语法

  • 枚举- - - - - -枚举……结束定义一个枚举块。有关定义枚举类的详细信息,请参见定义枚举类

例子

全部折叠

电动机类存储电机的当前速度,并提供启动和停止电机的基本功能。类继承自ElectricVehicleComponent父类,包括一个属性块和一个方法块。

classdef电机<电动汽车部件属性CurrentSpeed = 0 SpeedRange = [0, 180]结束方法函数电机=启动(电机,速度)参数电动机(1,1)发动机速度(1,1) {mustBeReal, mustBeNonnegative}结束如果马达。CurrentSpeed > 0 error(“电机:开始:MotorAlreadyRunning”...“不能启动已经在运转的马达。”结束马达。CurrentSpeed =速度;结束函数电机=停止(电机)如果马达。CurrentSpeed == 0 error(“电机:开始:MotorNotRunning”...“不能让不运转的马达停下来。”结束马达。CurrentSpeed = 0;结束结束结束

提示

  • 只有空行和注释可以在前面classdef

  • 类定义文件可以在MATLAB的文件夹中®路径或父文件夹在MATLAB路径上的类文件夹中。类文件夹名称以@字符后跟类名(例如,@MyClass).有关类文件夹的详细信息,请参见包含类定义的文件夹

  • 属性方法事件,枚举也是MATLAB函数的名称,用于查询给定对象或类名的各自类成员。

  • 属性不能具有与其定义类相同的名称。

  • 可以在主类文件以外的文件中定义方法。有关更多信息,请参见单独文件中的方法

版本历史

在R2008a中引入