matlab中的class,在matlab中也能够通过创建类的方式实现面向对象编程。


1)类定义

>> classdef (attribute1 = value,...) classname(< superclass_name)
properties
PropName
end methods
methodName
end
events
EventName
end end

类名必须要与文件名称相同,第一个括号里声明类的属性,类似于java中的public等关键词,更具体的解释可參考:Class Attributes。

第二个括号指明类是否须要继承父类,类似于java中的extendskeyword或者C++中的‘:’。

相同matlab也支持多重继承,更具体的解释可參考:Creating Subclasses —Syntax and Techniques。在实现链表的过程中,我们须要继承handle类。


properties类似于成员变量。更具体的解释可參考:Defining Properties。

methods就是详细的函数实现。有非常多种不同类型的函数。以下简要介绍:



普通函数(Ordinarymethods)。

大部分都是普通函数,它负责完毕该类要完毕的主要任务。

构造函数(Constructormethods)。

和其它高级语言类似。也必须是类名。用来给属性赋值。

唯一不同是它必须返回它创建的对象。

更具体的解释可參考:Class Constructor Methods。

析构函数(Destructormethods)。名字必须是delete,用来释放空间。更具体的解释可參考:Handle Class Delete Methods。

属性訪问函数(Propertyaccess methods)。类似于其它高级语言中的set、get函数。

更具体的解释可參考:Controlling PropertyAccess。

静态函数(Staticmethods)。类似于其它高级语言中的静态函数,通过类对象进行訪问。

转换函数(Conversionmethods)。是对其它类构造函数的重载,能够将自定义类的对象转换成重载构造函数类的对象。更具体的解释可參考:Converting Objects to Another Class。

抽象函数(Abstractmethods)。

无需解释,用来在子类中继承的函数。


样例:定义一个结点类node

>> classdef node < handle
properties
data
end properties(SetAccess = public)
next
end methods
function node = node(data)
if nargin > 0
node.data=data;
end
end
end end










版权声明:本文博客原创文章,博客,未经同意,不得转载。

最新文章

  1. ecshop 默认图处理
  2. iOS 在类别里添加成员变量的方法:objc_setAssociatedObject
  3. Length of Last Word | Leetcode
  4. 相遇Qt5
  5. 一篇知乎的故事 - javascript技术贴
  6. Win10 UWP开发系列:开发一个自定义控件——带数字徽章的AppBarButton
  7. 反编译python打包的exe文件
  8. Intellij IDEA创建的Web项目配置Tomcat并启动Maven项目
  9. 解决多人开发时使用window.onload的覆盖问题
  10. my97DatePicker选择年、季度、月、周、日(转)
  11. Java charAt() 方法
  12. windows mysql 的myini
  13. 后台获取url里面加密的参数中,特殊符号+获取到后端后是 一个空格的解决方法
  14. openssl x509(签署和自签署)
  15. SVM的代码实现-python
  16. Hadoop源码分析(mapreduce.lib.partition/reduce/output)
  17. 第一章 mac下开发环境的配置
  18. MySQL性能优化(三)-- 索引
  19. thinkphp 3.2.3 addAll方法的坑
  20. 【我的Android进阶之旅】Jenkins挂载slave节点,增强分布式编译的效率

热门文章

  1. jQuery实现点击开关图片切换
  2. ios开发核心动画七:核心动画与UIView动画的区别
  3. mysql分区功能(三个文件储存一张表)(分区作用)(分区方式)
  4. Chrome谷歌浏览器web前端开发好用插件(自己用)备忘
  5. c头文件(.h)的作用
  6. svn删除文件或文件夹后提交失败及解决
  7. amazeui时间组件测试
  8. Python科学计算(一)
  9. 【record】11.7..11.13
  10. Visual Studio 2017 and Apache Cordova mobile apps | Andr&#233;s Zs&#246;g&#246;n