定义一个类

可以使用与该类同名的 .m 文件中的 classdef 定义类。该文件可以包含 classdefend 块和用于类方法的本地函数。

最通用的 MATLAB 类定义具有以下结构:

classdef (ClassAttribute = expression, ...) ClassName < ParentClass1 & ParentClass2 & ...

   properties (PropertyAttributes) 
      PropertyName
   end 

   methods (MethodAttributes) 
      function obj = methodName(obj,arg2,...)
         ...
      end
   end

   events (EventAttributes) 
      EventName
   end

   enumeration
      EnumName
   end

end

MATLAB 文档: 类属性属性属性方法属性事件属性枚举类限制

示例类:

名为 Car 的类可以在文件 Car.m 中定义为

classdef Car < handle % handle class so properties persist
    properties
        make
        model
        mileage = 0;
    end

    methods
        function obj = Car(make, model)
            obj.make = make;
            obj.model = model;
        end
        function drive(obj, milesDriven)
            obj.mileage = obj.mileage + milesDriven;
        end
    end
end

请注意,构造函数是一个与类同名的方法。 <构造函数是面向对象编程中的类或结构的特殊方法,用于初始化该类型的对象。构造函数是一个实例方法,通常与类具有相同的名称,可用于设置对象成员的值,可以是默认值,也可以是用户定义的值。>

可以通过调用构造函数来创建此类的实例;

>> myCar = Car('Ford', 'Mustang'); //creating an instance of car class 

调用 drive 方法将增加里程数

>> myCar.mileage 
    
    ans = 
            0

>> myCar.drive(450);

>> myCar.mileage
    
   ans = 
            450