Da *_*ang 3 matlab constructor
在类构造函数中,如果我调用另一个方法来初始化某个属性,为什么该属性没有改变?
示例代码:
classdef Test
properties
prop
end
methods
function obj = Test()
obj.init();
end
function init(obj)
obj.prop = 1;
end
end
end
Run Code Online (Sandbox Code Playgroud)
然后执行A = Test();我得到A.prop = [].
classdef Test < handle
Run Code Online (Sandbox Code Playgroud)
这将对引用的对象应用方法.
您必须返回修改后的对象:
function obj = Test()
obj.init();
end
Run Code Online (Sandbox Code Playgroud)
应该
function obj = Test()
obj = obj.init();
end
Run Code Online (Sandbox Code Playgroud)
但是,您init()也没有将修改后的对象返回给调用者:
function init(obj)
obj.prop = 1;
end
Run Code Online (Sandbox Code Playgroud)
应该是
function obj = init(obj)
obj.prop = 1;
end
Run Code Online (Sandbox Code Playgroud)