Matlab类定义

Matlab自学笔记(2)


文章目录

  • Matlab类定义
  • 前言
  • 1、类定义
  • 2、classdef定义块
  • 3、属性定义块
    • 3.1 属性特性 Attributes
  • 4、方法
  • 5、事件
  • 6、枚举

前言

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


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

1、类定义

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

classdef … end

完整示例如下,

classdef (Attributes) ClassName < SuperclassName    %开始类定义properties (Attributes)     %开始属性定义块PropertyNamePropertyName size class {validation functions}end     %终止属性定义块methods (Attributes)     %开始方法定义块function obj = methodName(obj,arg2,...)...endend    %开始方法定义块events (Attributes)     %开始事件定义块EventNameend    %开始事件定义块end   %中止类定义classdef (Attributes) ClassName < SuperclassName   %开始类定义enumeration   %开始枚举定义EnumNameend    %中止枚举定义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)     %开始属性定义块PropertyNamePropertyName size class {validation functions}
end     %终止属性定义块

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

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

3.1 属性特性 Attributes

属性特性的目的

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

指定属性特性

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

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

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

    properties (Access = private)Dataend

属性特性表

特性值

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

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

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

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

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

4、方法

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

5、事件

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

6、枚举

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

Matalab类定义相关推荐

  1. C++ 笔记(16)— 类和对象(类定义、类实例对象定义、访问类成员、类成员函数、类 public/private/protected 成员、类对象引用和指针)

    1. 类的定义 类定义是以关键字 class 开头,后跟类的名称.并在它后面依次包含类名,一组放在 {} 内的成员属性和成员函数,以及结尾的分号. 类声明将类本身及其属性告诉编译器.类声明本身并不能改 ...

  2. python 类中定义类_Python中的动态类定义

    python 类中定义类 Here's a neat Python trick you might just find useful one day. Let's look at how you ca ...

  3. java受保护的数据与_Javascript类定义语法,私有成员、受保护成员、静态成员等介绍...

    摘要:这篇JavaScript栏目下的"Javascript类定义语法,私有成员.受保护成员.静态成员等介绍",介绍的技术点是"javascript类.JavaScrip ...

  4. 数据结构课本学习 --单链表类定义

    单链表的类定义: 复合类: class List;class LinkNode{ //结点类定义 friend class List; //List类所有成员可以使用LinkNode的私有成员,反过来 ...

  5. python 类-python类定义的讲解

    一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性.如果直接使用类名修改其属性,那么将直接影响到已经实例 ...

  6. 【Flutter】Dart 面向对象 ( 类定义 | 类的继承 | 私有变量 | 可选参数 | 默认参数 | 初始化列表 )

    文章目录 一. Dart 面向对象 二. 类定义 三. 类的继承 四. 私有变量 五. 可选参数与默认参数 六. 初始化列表 七. 完整代码示例 八. 相关资源 一. Dart 面向对象 OOP 基本 ...

  7. 【C++ 语言】面向对象 ( 类定义 | 限制头文件引用次数 | 构造方法 | 析构方法 )

    文章目录 类的定义 ( 头文件引用次数控制 ) 类的实现 ( 构造函数 | 析构函数 ) CMake 编译配置 类测试 ( 构造析构调用测试 ) 类的定义 ( 头文件引用次数控制 ) 类定义 , 类一 ...

  8. 几种常用的JS类定义方法

    几种常用的JS类定义方法 // 方法1 对象直接量 var obj1 = {     v1 : "",     get_v1 : function() {         retu ...

  9. c++新特性11 (12)weak_ptr类定义

    1. 类定义 // CLASS TEMPLATE weak_ptr template <class _Ty> class weak_ptr : public _Ptr_base<_T ...

最新文章

  1. javascript pattern
  2. session无法传值解决方案!
  3. python xgboost用法_XGBoost类库使用小结
  4. servlet类中@WebServlet 报错,不变色
  5. c语言通讯录以及写入文件,学C三个月了,学了文件,用C语言写了个通讯录程序...
  6. 记录一次线上超时异常查询
  7. bzoj 3668 数位DP
  8. ztree 指定节点清空_节点操作
  9. Python之eval函数实例解释
  10. Python实现定时任务,定时采集数据,定时执行脚本程序都可以
  11. Asp.net主题(theme)和皮肤(skin)的使用
  12. 2年20亿搞自动驾驶+环卫,酷哇和中联环境成立合资子公司
  13. js request 应用举例
  14. 459.重复的子字符串
  15. 求解线性方程的数值方法——Matlab中实现算法
  16. EndNote 高校_再也不用苦苦寻找EndNote安装包~【EndNote网页版】
  17. java开发工具排名_排名前16的Java工具类
  18. Android源代码中引用@hide类出现引用异常的问题error: cannot find symbol
  19. 百篇已过,又是一个新篇章,谈谈感受吧
  20. iOS开发中常见的英文

热门文章

  1. Win10操作系统不能访问共享文件夹
  2. Abp框架之执行Update-Database 命令系列错误
  3. lucene、solr、nutch三者的关系
  4. 【Python3】Python模块与包的导入
  5. 使用Node.JS监听文件夹变化
  6. oracle 查看连接数
  7. 1.4 VC6.0在win7下安装的兼容性问题以及解决办法
  8. 3D 音频技术产品介绍(1):Iosono the future of spatial audio
  9. SQL SERVER 2005无法远程连接的问题
  10. python中浅拷贝与深拷贝