可能的重复:
如何修改 Matlab 对象的属性 https://stackoverflow.com/questions/272618/how-to-modify-properties-of-a-matlab-object
我正在尝试将我的 C# 代码转换为 Matlab,在 Matlab 中我决定使用 OOP(我还没有在 Matlab 中使用过),以便能够处理我的 C# 代码的复杂性。
寻找tutorial http://www.mathworks.com/help/techdoc/matlab_oop/brdqinq.html#brd2n6b-1,我想出了以下代码:
classdef Cat
properties
meowCount = 0;
end
methods
function Meow(C)
disp('meowww');
C.meowCount = C.meowCount + 1;
end
end
end
结果:
>> c = Cat();
>> c.Meow();
meowww
>> c
c =
Cat
Properties:
meowCount: 0
Methods
So, meowCount
不会改变。问题是什么?
我注意到的几个问题:
构造函数并不是绝对必要的,但是当您真正想要开始开发更大的类时,了解它非常有用。它用于初始化obj
对象,它被传递给每个方法。它与Python非常相似self
,或 C++ 的this
.
所以,你更正后的课程:
classdef Cat < handle
properties
meowCount = 0;
end
methods
function obj = Cat()
% all initializations, calls to base class, etc. here,
end
function Meow(obj)
disp('meowww');
obj.meowCount = obj.meowCount + 1;
end
end
end
示范:
>> C = Cat;
>> C.Meow;
meowww
>> C.meowCount
1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)