Clases y Objeto en MATLAB

Una clase es un modelo que define las variables y los métodos que proporcionan una base común compartida para sus objetos correspondientes. Define un objeto que encapsula datos y las operaciones realizadas en esos datos. classdef es una palabra clave utilizada para definir clases de MATLAB.

Sintaxis para definir una clase:

classdef (Attributes) ClassName < SuperclassName

properties (Attributes)  
    PropertyName
    PropertyName size class {validation functions}
 end  
 
 methods (Attributes)  
    function obj = methodName(obj,arg2,...)
       ...
    end
    
 end
 
 events (Attributes)  
    EventName
 end
 
end

Componentes de la clase MATLAB:

La clase de MATLAB tiene tres componentes principales (que son funciones de MATLAB que se utilizan para consultar a los miembros de la clase respectivos sobre un objeto o nombre de clase determinado):

  • Bloques de propiedades: Definen las propiedades que almacenan datos para cada uno de los objetos de la clase.
  • Bloques de métodos: contienen un conjunto de funciones que definen las operaciones que se pueden realizar en cada objeto de la clase.
  • Bloques de eventos: defina mensajes que un objeto enviará a otras partes de una aplicación cuando algo cambie en ese objeto.

Aquí hay un ejemplo de una clase de MATLAB,

SimpleClass define una propiedad y dos métodos que operan en los datos de esa propiedad:

Matlab

classdef SimpleClass
   properties
      Value {mustBeNumeric}
   end
     
   methods
      function R = roundOff(object)
         R = round([object.Value],2);
      end
        
      function R = DivideBy(object,n)
         R = [object.Value] / n;
      end
        
   end
end

En el ejemplo anterior:

  • Valor : propiedad que contiene los datos numéricos almacenados en un objeto de la clase.
  • roundOff : método que redondea el valor de la propiedad a dos decimales.
  • DivideBy : método que multiplica el valor de la propiedad por el número especificado.

Para usar la clase:

  • Guarde la definición de clase con el mismo nombre que la clase, mantenga la extensión del archivo como (.m).
  • Crear un objeto de la clase.
  • Acceda a las propiedades para asignar datos y llame a métodos para realizar una operación en los datos.

Objetos

Similar a cualquier otro lenguaje de programación, los objetos en MATLAB son instancias de sus respectivas clases. En MATLAB, los objetos de una clase se pueden crear de dos formas:

Crear un objeto de la clase usando el nombre de la clase.

Crear objeto: a continuación se muestra el script para crear un objeto de la clase anterior.

Matlab

a = SimpleClass
a =  
SimpleClass with properties:
Value: []

Inicialmente, el valor de la propiedad está vacío.

Propiedades de acceso: usando la variable del objeto y un punto antes del nombre de la propiedad, podemos asignar valor a la propiedad Valor:

Matlab

a.Value = pi;

El valor de la propiedad se devuelve si usamos la notación de puntos sin la asignación:

Matlab

a.Value

Producción:

ans =
   3.1416

Métodos de llamada: llame al método roundOff en el objeto a:

Matlab

roundOff(a)

Producción:

ans =
   3.1400

Pase el objeto como primer argumento a un método que toma varios argumentos, como en esta llamada al método DivideBy :

Matlab

DivideBy(a,3)

Producción:

ans =
   1.0472

El método también se puede llamar usando la notación de puntos:

Matlab

a.DivideBy(3)

Producción:

ans =
   1.0472

No es obligatorio pasar el objeto explícitamente como argumento cuando se usa la notación de puntos.

Crear objeto usando Constructor

También podemos crear un objeto (o una array de objetos) utilizando un constructor de clase. Los métodos de constructor nos permiten pasar argumentos al constructor, que puede asignar como valores de propiedad. La función mustBeNumeric restringe los posibles valores de la propiedad SimpleClass Value. El constructor se llama como cualquier función de MATLAB. Puede acceder a las propiedades de los objetos y los métodos de los objetos se llaman igual que las funciones ordinarias de MATLAB.

Aquí hay un constructor para la clase SimpleClass . Cuando se llama al constructor con un argumento de entrada, se le asigna la propiedad Value, pero si se llama sin un argumento de entrada, tiene un valor predeterminado de vacío ([]).

Matlab

classdef SimpleClass
   properties
      Value {mustBeNumeric}
   end
     
   methods
       function obj = SimpleClass(val)
           if nargin == 1
               obj.Value = val;
           end
             
       end
   end
end

Podemos crear un objeto y establecer el valor de la propiedad en un solo paso agregando un constructor a la definición de la clase:

Matlab

a = SimpleClass(pi/3)

Producción:

a =  
 SimpleClass with properties:
Value: 1.0472

El constructor también se usa para realizar operaciones relacionadas con la creación de objetos de la clase.

Nota: los objetos de MATLAB tienen características únicas en relación con otros lenguajes. Por ejemplo, puede modificar una clase en cualquier momento y los objetos de esa clase se actualizarán inmediatamente. La gestión del ciclo de vida de los objetos en MATLAB se realiza sin necesidad de una asignación o desasignación de memoria explícita.

Un complemento de la creación de objetos de la clase SimpleClass en MATLAB:

Publicación traducida automáticamente

Artículo escrito por tanujapal8111999 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *