OK possibly a silly question, be please read and help me out regardless. :)
Does an object have a sense of self?
What I mean is, let's say I want to have some method which you call that increases a protected property by 1.
So you call the method: MyObj.AddOneToThatThingyMaBob().
Inside the method, what do I use as a subsitute for "this" like you would use in C#? AKA in C# it might be something similar to: this.MyValue = this.MyValue + 1;
How do you do that in MATLAB?

 采纳的回答

In MATLAB, a method would typically have a signature:
classdef test1234 < handle
properties (Access = public)
prop
end
methods
function obj = test1234()
obj.prop =0;
end
function AddOneToThatThing(obj)
obj.prop = obj.prop+1;
end
end
end
Then
a = test1234;
a.AddOneToThatThing();
a
Gives you what you need. The key here is Handle classes

3 个评论

You could do this with Value classes as well:
classdef test1234
properties (Access = public)
prop
end
methods
function obj = test1234()
obj.prop = 0;
end
function obj = AddOneToThatThing(obj)
obj.prop = obj.prop+1;
end
end
end
But then you will have to always return the modified obj back.
a = test1234;
a = a.AddOneToThatThing() % Reassign it
OK this makes sense..."obj" is "this" when dealing with Handle classes!
obj is just a variable name used typically in MATLAB (or by me)! If you prefer you could name it as 'this' instead of 'obj'

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Class Introspection and Metadata 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by