2011-03-16 864 views
7

Estoy creando una clase en MATLAB y aunque tengo poca experiencia con objetos, estoy casi seguro de que debería ser capaz de establecer una propiedad de clase usando un método de clase. ¿Es esto posible en MATLAB?Estableciendo una propiedad de objeto usando un método en Matlab

classdef foo 
    properties 
     changeMe 
    end 

    methods 
     function go() 
      (THIS OBJECT).changeMe = 1; 
     end 
    end 
end 

f = foo; 
f.go; 


t.changeMe; 
ans = 1 

Respuesta

9

Sí, esto es posible. Tenga en cuenta que si crea un objeto de valor, el método tiene que devolver el objeto para cambiar una propiedad (ya que los objetos de valor se pasan por valor). Si crea un objeto de control (classdef foo<handle), el objeto se pasa por referencia.

classdef foo 
    properties 
     changeMe = 0; 
    end 

    methods 
     function self = go(self) 
      self.changeMe = 1; 
     end 
    end 
end 

Como se mencionó anteriormente, la llamada de un método de ajuste en un objeto de valor devuelve el objeto modificado. Si desea cambiar un objeto, debe copiar el resultado al objeto.

f = foo; 
f.changeMe 
ans = 
    0 

f = f.go; 

f.changeMe 
ans = 
    1 
Cuestiones relacionadas