Curso de Raku / Objetos, entrada/salida y excepciones / Clases y objetos
Atributos
Una clase vacía no es muy útil. Para que un objeto lleve consigo
datos propios, se dan a la clase unos atributos. Un atributo se
declara dentro de la clase con la palabra clave has:
class Dog {
has $.name;
has $.age;
}Cada objeto de la clase recibe su propia copia de estos atributos.
Sus valores se fijan al crear el objeto, pasándolos a new
como argumentos con nombre:
class Dog {
has $.name;
has $.age;
}
my $rex = Dog.new(name => 'Rex', age => 3);El $. de has $.name hace dos cosas a la
vez: declara un atributo y crea un método con el mismo nombre — un
accesor — que devuelve el valor del atributo:
say $rex.name; # Rex
say $rex.age; # 3Objetos distintos guardan valores propios, independientes entre sí:
my $rex = Dog.new(name => 'Rex', age => 3);
my $fido = Dog.new(name => 'Fido', age => 5);
say $rex.name; # Rex
say $fido.name; # FidoLos temas siguientes muestran cómo hacer modificables los atributos y cómo darles valores por defecto. (También existe una manera de declarar atributos privados, ocultos al exterior; volveremos a ella una vez introducidos los métodos.)
Temas de esta sección
Práctica
Resuelve 1 cuestionario sobre el contenido de esta sección.
Ejercicios
Esta sección contiene 4 ejercicios. Mira todos los temas de esta sección antes de empezar los ejercicios.
Navegación del curso
← Solución: Nombre el tipo | Atributos de lectura y escritura →