defining properties in a class

3 visualizaciones (últimos 30 días)
Deepa Maheshvare
Deepa Maheshvare el 3 de Ag. de 2021
Comentada: Deepa Maheshvare el 3 de Ag. de 2021
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`?

Respuestas (1)

Rik
Rik el 3 de Ag. de 2021
Editada: Rik el 3 de Ag. de 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 comentarios
Rik
Rik el 3 de Ag. de 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)
ans = struct with fields:
PropName: 10 propname2: 10
function main(arg)
classname.fun1(arg,arg)
end
Deepa Maheshvare
Deepa Maheshvare el 3 de Ag. de 2021
Basically I want it to be a storage.
I think I could do the following. Defining persistent variable inside class helps in accessing the value globally without having to pass the input argument everytime.
classdef StoreData
methods (Static)
function out = setgetVar(data)
persistent Var;
if nargin
Var = data;
end
out = Var;
end
end
end
StoreData.setgetVar(10);
a = StoreData.setgetVar
ref:
https://in.mathworks.com/help/matlab/matlab_oop/static-data.html

Iniciar sesión para comentar.

Categorías

Más información sobre Class File Organization en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by