Matlab中的类组件

目录

类组件

类构建块

类定义代码块

属性代码块

方法代码块

事件代码块

完整类

枚举类


类组件

类构建块

        MATLAB® 将类定义代码组织成模块化代码块,以关键字分隔。所有关键字都有相关联的 end 语句:

  • classdef...end - 所有类组件的定义

  • properties...end - 属性名称声明、属性特性设定、默认值赋值

  • methods...end - 方法签名、方法属性和函数代码的声明

  • events...end - 事件名称和属性的声明

  • enumeration...end - 枚举类的枚举成员和枚举值的声明。

        properties、methods、events 和 enumeration 只是 classdef 代码块内的关键字。

类定义代码块

        classdef 代码块包含文件中的类定义,以 classdef 关键字开头,以 end 关键字结尾。

classdef (ClassAttributes) ClassName < SuperClass
   ...
end

        例如,以下 classdef 定义名为 MyClass 的类,该类是 handle 类的子类,但它不能用于派生子类:

classdef (Sealed) MyClass < handle
   ...
end

属性代码块

        properties 代码块(每个唯一的特性设定集对应一个)包含属性定义,其中包括可选的初始值。属性代码块以 properties 关键字开始,以 end 关键字结束。

classdef ClassName
   properties (PropertyAttributes)
      ...
   end
   ...
end

        例如,以下类定义名为 Prop1 的属性,该属性具有私有访问权限,默认值等于 date 函数的输出。

classdef MyClass
   properties (SetAccess = private)
      Prop1 = date
   end
   ...
end

方法代码块

        methods 代码块(每个唯一的属性设定集对应一个)包含类方法的函数定义。方法代码块以 methods 关键字开始,以 end 关键字结束。

classdef ClassName
   methods (MethodAttributes)
      ...
   end
   ...
end

例如:

classdef MyClass
   methods (Access = private)
      function obj = myMethod(obj)
      ...
      end
   end
end

事件代码块

        events 代码块(每个唯一的属性设定集对应一个)包含该类声明的事件的名称。事件代码块以 events 关键字开始,以 end 关键字结束。

classdef ClassName
   events (EventAttributes)
      EventName
   end
   ...
end

        例如,以下类定义名为 StateChange 的事件,ListenAccess 设置为 protected:

classdef EventSource
   events (ListenAccess = protected)
      StateChanged
   end
   ...
end

完整类

        完整的类定义包含属性、方法和事件代码块的任意组合。

classdef (Sealed) MyClass < handle
   properties (SetAccess = private)
      Prop1 = datenum(date)
   end
   properties
      Prop2
   end
   methods
      function obj = MyClass(x)
         obj.Prop2 = x;
      end
   end
   methods (Access = {?MyOtherClass})
      function d = myMethod(obj)
         d = obj.Prop1 + x;
      end
   end
   events (ListenAccess = protected)
      StateChanged
   end
end

枚举类

        枚举类是一种特化类,用于定义代表单个类型值的固定名称集。枚举类使用 enumeration 代码块来包含该类所定义的枚举成员。

        枚举代码块以 enumeration 关键字开始,以 end 关键字结束。

classdef ClassName < SuperClass
   enumeration
      EnumerationMember
   end
   ...
end

        例如,以下类定义两个枚举成员,分别代表逻辑值 false 和 true:

classdef Boolean < logical
   enumeration
      No  (0)
      Yes (1)
   end
end

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值