handle类和value类又分别叫做:句柄类和实体类。
参考:https://blog.csdn.net/qq_43575267/article/details/94144564
handle类的对象在赋值时,不创建新的拷贝,只复制一个句柄,类似于C语言指针。举个例子就明白了,如下:
classdef quaternion < handle
properties
data = zeros(4, 1);%列向量
end
methods %普通函数块--开始
function obj = quaternion(in4x1)
obj.data = in4x1;
end
end %普通函数块--结束
methods(Static) %静态函数块---开始
%可在这里定义静态函数
end %静态函数块---结束
end %类定义结束
测试代码如下:
q1 = quaternion([1 2 3 4]');
q2 = q1;%这里不会产生拷贝,只传递句柄
q2.data = [2 3 4 5];
disp(q1.data');
输出结果为: 2 3 4 5
当自己写的类继承value类时,对象间的赋值操作,会引发一次所有属性值的拷贝,两个对象各有各的内存空间。