Curso de Raku / Objetos, entrada/salida y excepciones / Clases y objetos / Clases
Objetos de tipo e instancias
Cuando escribes el nombre de una clase como Dog, te
estás refiriendo al objeto de tipo de la clase. El objeto de
tipo representa el tipo en sí, no un objeto concreto de ese tipo. Una
instancia, creada con new, es un objeto de
verdad.
Raku distingue ambos. El método defined devuelve
False para un objeto de tipo y True para una
instancia:
class Dog {
}
say Dog.defined; # False
say Dog.new.defined; # TrueUn objeto de tipo se considera no definido porque no contiene datos concretos: es solo la descripción de un tipo. Una instancia sí está definida: es un objeto de verdad.
Ambos informan del mismo tipo a través de WHAT, que
conociste en la sección sobre
contenedores:
class Dog {
}
say Dog.WHAT; # (Dog)
say Dog.new.WHAT; # (Dog)Los paréntesis alrededor de (Dog) son la forma que tiene
Raku de mostrar un tipo. Así que Dog y Dog.new
comparten el tipo Dog; la diferencia es que uno es el tipo
mismo y el otro un objeto de ese tipo.
Práctica
Resuelve 1 cuestionario sobre el contenido de este tema.
Navegación del curso
← Clases | Quiz — Clases →
💪 O ve directamente a los
ejercicios de esta sección.