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.
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.