Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten / Klassen
Typeobjecten en instanties
Als je een klassenaam als Dog schrijft, verwijs je naar
het typeobject van de klasse. Het typeobject stelt het type
zelf voor, niet een bepaald object van dat type. Een instantie,
gemaakt met new, is een echt object.
Raku kan de twee uit elkaar houden. De methode defined
geeft False terug voor een typeobject en True
voor een instantie:
class Dog {
}
say Dog.defined; # False
say Dog.new.defined; # TrueEen typeobject geldt als ongedefinieerd omdat het geen concrete gegevens bevat — het is slechts de beschrijving van een type. Een instantie is gedefinieerd: het is een echt object.
Beide melden hetzelfde type via WHAT, dat je tegenkwam
in de sectie over containers:
class Dog {
}
say Dog.WHAT; # (Dog)
say Dog.new.WHAT; # (Dog)De haakjes om (Dog) zijn Raku’s manier om een type te
tonen. Dus Dog en Dog.new delen het type
Dog; het verschil is dat het ene het type zelf is en het
andere een object van dat type.
Praktijk
Maak de 1 quiz over de inhoud van dit onderwerp.
Cursusnavigatie
← Klassen | Quiz — Klassen →
💪 Of ga direct naar de
oefeningen in deze sectie.