classdef classname < super_class
properties
......
end
methods
function [returnValue]=functionNamearguments
......
end
end
end

​ 若成员方法代码量比较大,可以在类定义中仅给出函数的声明,把函数实现放到一个独立的文件中。

​ 说明:

  • 这种方法需要创建一个@classname的文件夹,然后把类的定义和方法的实现都放到该文件夹中,然后在@classname的外部调用该类的构造函数。
  • 某些函数不能采用这种方式,比如类的Constructor和Destructor(析构函数),以及Static方法,都必须在类的定义中实现。

调用方法

​ 点调用方式:obj.memberFunction(arg1,arg2)

​ 函数调用方式:memberFunction(obj,arg1,arg2)

​ 点调用和函数调用类方法的区别,虽然两种方法基本等价,但仍有一些细微的区别:

  1. 使用点调用方式符合面向对象的风格,程序的可读性高,这是施加在对象上的一种操作。使用函数调用方式满足传统的面向过程的编程习惯,在某些情况下,兼容旧的MATLAB代码。
  2. 使用点调用可以清楚的表示MATLAB调用的时成员方法还是函数。

类的构造函数

​ 构造函数(Constructor)是一种特殊的成员方法:

  1. Constructor和类的名称相同,用来创造类的实例。
  2. MATLAB类定义中只能有1个Constructor·。
  3. Constructor有且只能有一个返回值,且必须是新创建的对象,这是唯一创建一个新的对象的方式。
classdef Point2D < handle
properties
x
y
end
methods
function obj = Point2D(x0,y0) %返回值必须是一个obj
obj.x=x0;
obj.y=y0;
end
end
end
>> clear classes;
>> p1=Point2D(1.0,2.0); %使用构造函数创建对象

​ MATLAB在声明一个对象时的工作顺序是:先装载类的定义,然后再调用构造函数,这时属性被重新赋值。