Main Content

Clases definidas por el usuario

¿Qué es una definición de clase?

Una definición de clase de MATLAB® es una plantilla cuyo objetivo es proporcionar una descripción de todos los elementos que son comunes a todas las instancias de la clase. Los miembros de la clase son las propiedades, los métodos y los eventos que definen la clase.

Defina clases de MATLAB en bloques de código, con subbloques que delineen las definiciones de distintos miembros de las clases. Para ver información de sintaxis sobre estos bloques, consulte Components of a Class.

Atributos de miembros de clases

Los atributos modifican el comportamiento de las clases y los miembros que se definen en el bloque de definición de clases. Por ejemplo, puede especificar que los métodos sean estáticos o que las propiedades sean privadas. Las secciones siguientes describen estos atributos:

Las definiciones de clases pueden proporcionar información, como relaciones de herencia o los nombres de miembros de clases, sin construir realmente la clase. Consulte Class Metadata.

Consulte Specifying Attributes para obtener más información sobre la sintaxis de atributos.

Tipos de clases

Hay dos tipos de clases de MATLAB: clases de identificadores y clases de valores.

  • Las clases de valores representan valores independientes. Los objetos de valores contienen los datos del objeto y no los comparten con copias del objeto. Los tipos numéricos de MATLAB son clases de valores. Los objetos de valores que las funciones pasan y modifican deben devolver un objeto modificado a la función que realiza la llamada.

  • Las clases de identificadores crean objetos que hacen referencia a los datos del objeto. Las copias de la variable de instancia hacen referencia al mismo objeto. Los objetos de identificadores que las funciones pasan y modifican afectan al objeto en el espacio de trabajo de la función que realiza la llamada sin devolver el objeto.

Para obtener más información, consulte Comparison of Handle and Value Classes.

Construir objetos

Para obtener más información sobre los constructores de clases, consulte Class Constructor Methods.

Para obtener más información sobre cómo crear arreglos de objetos, consulte Construir arreglos de objetos.

Jerarquías de clases

Para obtener más información sobre cómo definir jerarquías de clases, consulte Hierarchies of Classes — Concepts.

Sintaxis classdef

Las definiciones de clases son bloques de código delimitados por la palabra clave classdef al principio y la palabra clave end al final. Los archivos solo pueden contener una definición de clase.

El siguiente diagrama muestra la sintaxis de un bloque classdef. Solo pueden preceder a la palabra clave classdef comentarios y líneas en blanco.

Example syntax of classdef block

Código de clases

A continuación, se muestra una definición de clase sencilla con una propiedad y un método de constructor que establece el valor de la propiedad cuando se ha suministrado un argumento de entrada.

classdef MyClass
   properties
      Prop
   end
   methods
      function obj = MyClass(val)
         if nargin > 0
            obj.Prop = val;
         end
      end
   end
end

Para crear un objeto de MyClass, guarde la definición de clase en un archivo .m con el mismo nombre que la clase y llame al constructor con cualquier argumento necesario:

d = datestr(now);
o = MyClass(d);

Utilice la notación de puntos para acceder al valor de la propiedad:

o.Prop
ans =

10-Nov-2005 10:38:14

El constructor debe ser compatible con una sintaxis sin argumento, de forma que MATLAB pueda crear objetos predeterminados. Para obtener más información, consulte No Input Argument Constructor Requirement.

Para obtener más información sobre los componentes de una definición de clase, consulte Components of a Class.

Temas relacionados