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










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

matlab 基础知识class &lt; superclass_name的更多相关文章

  1. Matlab - 基础知识

    Matlab R2016a完全自学一本通 记在前面: (1)函数中:dim=1 按列:dim=2 按行 (2)这本书很垃圾,不建议买. (3)在数据库连接中,用两个单引号表示字符串,千万不能用双引号 ...

  2. Matlab--从入门到精通(chapter2 matlab 基础知识)

    Chapter2 Matlab 基础知识 1.基本数学运算符号 注:矩阵的右除是一般意义的除法,但是左除具有对称意义,即A./B=B.\A 2. 命令行中的常用标点 3.常见的操作命令 4.输出数据显 ...

  3. Matlab高级教程_第一篇:Matlab基础知识提炼_02

    第三节:变量 正如其他编程软件一样. 都是通过变量来传递和交换数据的,这是基础.按照<MATLAB基础知识提炼>这篇文章先介绍变量比较合适.编程语言不外乎包括两部分:数据和结构.应该先把数 ...

  4. Matlab高级教程_第一篇:Matlab基础知识提炼_01

    第一篇:Matlab基础知识提炼: 这一篇主要用系统和提炼性的语言对Matlab基础知识进行总结,主要适用于有语言基础的学习者.尽量不讲废话. 第一部分:Matlab是什么? 1 Matlab是Mat ...

  5. Matlab基础知识

    一.常用命令:普通的如cd.ls和linux下一样 clc:清除工作窗口中的所有显示内容 clf:清除图形窗口 whos:列出当前工作空间中所有变量,以及它们的名字.尺寸(比如一个矩阵或数组的行列维数 ...

  6. MATLAB基础知识tips

    网络论坛资源: MATLAB中文论坛https://i.cnblogs.com/EditPosts.aspx?opt=1 circshift 移位函数,circshift(A,SHIFTSIZE).S ...

  7. 数学建模--matlab基础知识

    虽然python也能做数据分析,不过参加数学建模,咱还是用专业的 1. Matlab-入门篇:Hello world! 程序员入门第一式: disp(‘hello world!’) 2. 基本运算 先 ...

  8. Matlab学习笔记1—MATLAB基础知识

    1.1  MATLAB系统环境 1.MATLAB操作界面的组成 (1)MATLAB主窗口 (2)命令行窗口:命令行窗口用于输入命令并显示命令的执行结果. (3) 当前文件夹窗口 如何设置当前文件夹呢? ...

  9. Matlab高级教程_第一篇:Matlab基础知识提炼_04

    第八节:几大MATLAB的数据类型 8.1 数值型 8.2 字符和字符串 创建用' ' 8.3 函数句柄 8.4 结构体 创建用. 语法:struct('field', var1,'field2',' ...

随机推荐

  1. DOCKER学习心得

    原文:DOCKER学习心得   前言: Docker的主要学习心得来源于<docker技术入门与实战> --2019.1.1->2019.1.5 la 着重从基础部分--实例分析-- ...

  2. [Docker] Run, Stop and Remove Docker Containers

    In this lesson, we'll find out the basics of running Docker containers. We'll go over how to downloa ...

  3. CompletionService 和ExecutorService的区别和用法

    JavaSE5的Java.util.concurrent包中的执行器(Executor)将为你管理Thread对象,从而简化了并发编程.Executor在客户端和执行任务之间提供了一个间接层,Exec ...

  4. FAST特征点检测&&KeyPoint类

    FAST特征点检测算法由E.Rosten和T.Drummond在2006年在其论文"Machine Learning for High-speed Corner Detection" ...

  5. [Angular] Create custom validators for formControl and formGroup

    Creating custom validators is easy, just create a class inject AbstractControl. Here is the form we ...

  6. ios开发日期的NSDate,NSCalendar分类

    #import <Foundation/Foundation.h> @interface NSDate (XMGExtension) /** */ // @property (nonato ...

  7. poj1007——DNA Sorting

    Description One measure of ``unsortedness'' in a sequence is the number of pairs of entries that are ...

  8. 利用performSelectorInBackground和performSelectorOnMainThread实现多线程

    NSObject类的performSelectorOnMainThread和performSelectorInBackground能够实现简单的多线程编程技术 1.- (void)performSel ...

  9. phpstorm常用快捷键有哪些(图解归类)

    phpstorm常用快捷键有哪些(图解归类) 一.总结 一句话总结: 10.方法参数提示,显示默认参数   解答:--------CTRL+P 13.显示类层级关系图,继承/实现关系   解答:--- ...

  10. XMPP之ios即时通讯客户端开发-创建工程添加XMPPFramework及其他框架(三)

    XMPPFramework GitHub: https://github.com/robbiehanson/XMPPFramework 获取源代码 git clone https://github.c ...