matlab 基础知识class < superclass_name

 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中的extends关键字或者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












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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值