可能重复:
如何修改Matlab对象的属性
我正在尝试将我的C#代码转换为Matlab,在Matlab中我决定使用OOP(我没有和Matlab一起使用)能够处理我的C#代码的复杂性.
看一下教程,我想出了以下代码:
classdef Cat
properties
meowCount = 0;
end
methods
function Meow(C)
disp('meowww');
C.meowCount = C.meowCount + 1;
end
end
end
Run Code Online (Sandbox Code Playgroud)
结果:
>> c = Cat();
>> c.Meow();
meowww
>> c
c =
Cat
Properties:
meowCount: 0
Methods
Run Code Online (Sandbox Code Playgroud)
所以,meowCount不要改变.问题是什么?
我注意到的一些问题:
handle基类派生的构造函数不是绝对必要的,但是当你真正想要开始开发更大的类时,它们非常有用.它用于初始化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
Run Code Online (Sandbox Code Playgroud)
示范:
>> C = Cat;
>> C.Meow;
meowww
>> C.meowCount
1
Run Code Online (Sandbox Code Playgroud)