"I followed proper VALUE class syntax for setX and setY."   No, that's handle class syntax. With a value class you create a new instance, which you need to return.
With the class definition modified
>> a = ClassA
a =
ClassA with properties:
x: 0
y: 0
>> a = a.setX( 17)
a =
ClassA with properties:
x: 17
y: 0
or
>> a = setY( a,117)
a =
ClassA with properties:
x: 17
y: 117
where
classdef ClassA
properties
x;
y;
end
methods
function obj = ClassA()
obj.x = 0;
obj.y = 0;
end
function obj = setX(obj, val)
obj.x = val;
end
function obj = setY(obj, val)
obj.y = val;
end
function obj = set.x(obj, val)
obj.x = val;
end
function obj = set.y(obj, val)
obj.y = val;
end
end
end
Best Answer