Matalab类定义

Matlab类定义

Matlab自学笔记(2)



前言

类是一种数据类型,与普通的数据类型不同的是类不仅包含数据,还包含对数据的操作,类把数据和数据操作方法封装在一起,作为一个整体参与程序的运行。


提示:以下是本篇文章正文内容,下面案例可供参考

1、类定义

classdef是类定义关键字,其语法为

classdef … end

完整示例如下,

classdef (Attributes) ClassName < SuperclassName    %开始类定义

   properties (Attributes)     %开始属性定义块
      PropertyName
      PropertyName size class {validation functions}
   end     %终止属性定义块
   
   methods (Attributes)     %开始方法定义块
      function obj = methodName(obj,arg2,...)
         ...
      end
   end    %开始方法定义块
   
   events (Attributes)     %开始事件定义块
      EventName
   end    %开始事件定义块
   
end   %中止类定义

classdef (Attributes) ClassName < SuperclassName   %开始类定义

   enumeration   %开始枚举定义
      EnumName
   end    %中止枚举定义
   
end    %中止类定义

properties、methods、events 和 enumeration 也是 MATLAB® 函数的名称,这些函数用于查询给定对象或类名称的各个类成员。

2、classdef定义块

classdef是用来定义matlab类的关键字。
classdef ClassName,是类定义的开始,只有空白行和注释可以位于classdef的前面。
end,用来终止classdef块。

类定义要保存在与类名称相同的文件中(文件拓展名为.m)。

类名称要以字母开头,可以包含字母、数字或下划线。

classdef    ClassName  < SuperclassName1 & SuperclassName2 ...
    %开始类定义并指定一个或多个超类

classdef    (AttributeName1 = attributevalue, AttributeName2 = attributevalue, ...) ClassName
    %开始类定义并制定类属性(可选)

类定义文件可以位于 MATLAB 路径上的文件夹中,也可以位于父文件夹在 MATLAB 路径上的类文件夹中。类文件夹名称以 ‘@’ 字符开始,后跟类名称(例如 @MyClass)。

3、属性定义块

properties (Attributes)     %开始属性定义块
    PropertyName
    PropertyName size class {validation functions}
end     %终止属性定义块

类定义可以包含多个属性定义块,每个块指定不同的属性设置,这些设置适用于该特定块中的属性。

注意:属性不能与类使用相同的名称。

3.1 属性特性 Attributes

属性特性的目的

在类定义中指定特性使您能够为特定目的自定义属性的行为。通过设置特性来控制属性的特征,例如访问权限、数据存储和可见性。子类不继承超类成员特性。

指定属性特性

在 properties 关键字的同一行为属性特性赋值:

    properties (Attribute1 = value1, Attribute2 = value2,...)
       ...
    end

例如,对 Data 属性给予 private 访问权限:

    properties (Access = private)
       Data
    end

属性特性表

特性值

指定特性值时,这些值会影响在定义代码块中定义的所有组件。例如,以下属性定义代码块会进行如下设置:

  • 将 AccountBalance 属性的 SetObservable 特性设置为 true

  • 将 SSNumber 和 CreditCardNumber 属性的 Hidden 特性设置为 true,将 SetAccess 特性设置为 private。

用不同的特性设置定义属性需要多个 properties 代码块。

properties (SetObservable = true) 
   AccountBalance
end
properties (SetAccess = private, Hidden = true)
   SSNumber
   CreditCardNumber
end

4、方法

methods, 开始方法定义块;
end 关键字终止 methods 块。
此块包含实现类方法的函数。
类定义可以包含多个方法块,每个块指定不同的属性设置,这些设置适用于该特定块中的方法。可以在单独的文件中定义方法函数。

5、事件

events 开始事件定义块,end 关键字终止 events 块。
此块包含类定义的事件名称。
类定义可以包含多个事件块,每个块指定不同的属性设置,这些设置适用于该特定块中的事件。

6、枚举

enumeration 开始枚举定义块,end 关键字终止 enumeration 块。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值