Using a Value (Vanilla) Class
When using a value class you need to tell Matlab to store a modified copy of the object to save the changes in the property value. So,
>> a=testprop
>> a.Request(5); % will NOT change the value of a.numRequests.
5
>> a.Request(5)
5
>> a.numRequests
ans =
0
>> a=a.Request; % However, this will work but as you it makes a copy of variable, a.
5
>> a=a.Request;
5
>> a.numRequests
ans =
2
As Kamran notes, this requires changing the definition of function Request
to be
function this = Request(this, val)`
Using a Handle Class
If you inherit from the handle class, that is
classdef testprop < handle
then you can write,
>> a.Request(5);
>> a.Request(5);
>> a.numRequests
ans =
2
Note that this changes the behavior of the objects, see the documentation to learn the difference between a value class and a handle class.