defining properties in a class
    4 views (last 30 days)
  
       Show older comments
    
I have the following class
classdef classname
    properties (Constant)
      Number=1
    end
end
I can change the value of `Number`
classname.Number=2
How can I defined properties so that one cannot change the value of the variables defined in `properties`?
0 Comments
Answers (1)
  Rik
      
      
 on 3 Aug 2021
        
      Edited: Rik
      
      
 on 3 Aug 2021
  
      This doc page seems to suggest this is not natively possible. However, you could implement it as method:
%(untested code)
classdef classname
    properties (Private)
        %use a struct to store the defaults to keep all your static
        %properties in one place
      static.Number=1;
    end
    methods
        function val=Number(obj)
            val=obj.static.Number;
        end
    end
end
13 Comments
  Rik
      
      
 on 3 Aug 2021
				Why would it? This is what it returns with your classdef.
I don't understand why you instist on calling things static when they aren't.
main(10)
function main(arg)
classname.fun1(arg,arg)
end
See Also
Categories
				Find more on Argument Definitions in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

