欢迎来到天天文库
浏览记录
ID:51963411
大小:1.74 MB
页数:31页
时间:2020-03-26
《基于MATLAB的数据结构与算法_线性表格部分.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、基于MATLAB《数据结构与算法》延边大学信息管理专业(13级)崔基哲MATLAB类的定义Class创建举例用class创建双向链表线性表部分的MATLAB编程类的建立:class类的建立:class1.1类文件夹当要创建一个类时,我们应该将确认类文件放在什么位置。matlab为我们提供了两种方法:1.在matlab路径下创建一个文件夹,然后在文件夹中创建一个单独的自包含的类定义2.在matlab路径下,创建一个@+类名的文件夹,在其中创建一个类,同时我们可以将类的定义分散在多个文件中,也即该文件夹下都是该类的定义;和其他高级语言(java)类似,matlab还允许我
2、们将这些类组织成包包为packages包文件夹的父文件夹必须在matlab路径下,但是包文件夹不必。包文件夹以‘+’开头,可以包含多个类定义或者其他的包。一个包文件夹定义了一个新的命名空间,所以我们可以重用类名。引用包中的类或者函数时需要包含包名称,例如packagefld1.ClassNameA(),packagefld2.packageFunction()。其他更多ClassFolders更多细节可参考matlab帮助中的ClassFolders部分(在搜索框中输入Class搜索)。1.2类定义要创建一个类,matlab会自动帮我们生成一个类框架,一般如下:clas
3、sdef(attribute1=value,...)classname(4、taxandTechniques。在实现链表的过程中,我们需要继承handle类。完整的一个类模块如下图:完整的一个类模块如下图关于classdef与handleclassdef是定义类名,后面的<是表示继承,Matlab允许多重继承,继承自handle类,handle类定义了很多关于object的处理函数,例如addListener以及notify还有delete等对对象的函数,是一个抽象类关于propertiesproperties类似于java或C++中的成员变量,我们也可以给其设定各种访问属性,更详细的解释可参考:DefiningProperties。关于Cla5、ss中的methodsmethods就是具体的函数实现。有很多种不同类型的函数,下面简要介绍:普通函数(Ordinarymethods)。我们实现的大部分都是普通函数,它负责完成该类要完成的主要任务。构造函数(Constructormethods)。和其他高级语言类似,也必须是类名,用来给属性赋值。唯一不同是它必须返回它创建的对象。更详细的解释可参考:ClassConstructorMethods。析构函数(Destructormethods)。名字必须是delete,用来释放空间。更详细的解释可参考:HandleClassDeleteMethods。属性访问函数(Pr6、opertyaccessmethods)。类似于其他高级语言中的set、get函数。更详细的解释可参考:ControllingPropertyAccess。静态函数(Staticmethods)。类似于其他高级语言中的静态函数,通过类对象进行访问。转换函数(Conversionmethods)。是对其他类构造函数的重载,可以将自己定义类的对象转换成重载构造函数类的对象。更详细的解释可参考:ConvertingObjectstoAnotherClass。抽象函数(Abstractmethods)。无需解释,用来在子类中继承的函数创建类的简单举例类是一种数据类型,与普通的数7、据类型不同的是类不仅包含数据,还包含对数据的操作,类把数据和数据操作方法封装在一起,作为一个整体参与程序的运行。类具有课继承性,创建一个新的类的时候,可以在一个基类中添加成员派生出新类。类的变量和类的实例是不同的,类的实例是动态分配的内存区域,通常称类的实例维“对象”,同一个类可以有不同的实例存在,他们各自有自己的数据,但是数据操作方法是相同的。类的变量可以看作是一个指针,指向类的实例。举例:建立一个类建立一个类通常一个类应该包含四个基本的成员函数:构造函数――与类名相同,可以在其中完成成员初始化的工作;显示函数――名为display
4、taxandTechniques。在实现链表的过程中,我们需要继承handle类。完整的一个类模块如下图:完整的一个类模块如下图关于classdef与handleclassdef是定义类名,后面的<是表示继承,Matlab允许多重继承,继承自handle类,handle类定义了很多关于object的处理函数,例如addListener以及notify还有delete等对对象的函数,是一个抽象类关于propertiesproperties类似于java或C++中的成员变量,我们也可以给其设定各种访问属性,更详细的解释可参考:DefiningProperties。关于Cla
5、ss中的methodsmethods就是具体的函数实现。有很多种不同类型的函数,下面简要介绍:普通函数(Ordinarymethods)。我们实现的大部分都是普通函数,它负责完成该类要完成的主要任务。构造函数(Constructormethods)。和其他高级语言类似,也必须是类名,用来给属性赋值。唯一不同是它必须返回它创建的对象。更详细的解释可参考:ClassConstructorMethods。析构函数(Destructormethods)。名字必须是delete,用来释放空间。更详细的解释可参考:HandleClassDeleteMethods。属性访问函数(Pr
6、opertyaccessmethods)。类似于其他高级语言中的set、get函数。更详细的解释可参考:ControllingPropertyAccess。静态函数(Staticmethods)。类似于其他高级语言中的静态函数,通过类对象进行访问。转换函数(Conversionmethods)。是对其他类构造函数的重载,可以将自己定义类的对象转换成重载构造函数类的对象。更详细的解释可参考:ConvertingObjectstoAnotherClass。抽象函数(Abstractmethods)。无需解释,用来在子类中继承的函数创建类的简单举例类是一种数据类型,与普通的数
7、据类型不同的是类不仅包含数据,还包含对数据的操作,类把数据和数据操作方法封装在一起,作为一个整体参与程序的运行。类具有课继承性,创建一个新的类的时候,可以在一个基类中添加成员派生出新类。类的变量和类的实例是不同的,类的实例是动态分配的内存区域,通常称类的实例维“对象”,同一个类可以有不同的实例存在,他们各自有自己的数据,但是数据操作方法是相同的。类的变量可以看作是一个指针,指向类的实例。举例:建立一个类建立一个类通常一个类应该包含四个基本的成员函数:构造函数――与类名相同,可以在其中完成成员初始化的工作;显示函数――名为display
此文档下载收益归作者所有