Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten
Attributen
Een lege klasse is niet erg nuttig. Om een object zijn eigen gegevens
te laten dragen, geef je de klasse attributen. Een attribuut
wordt binnen de klasse gedeclareerd met het sleutelwoord
has:
class Dog {
has $.name;
has $.age;
}Elk object van de klasse krijgt zijn eigen exemplaar van deze
attributen. Je stelt hun waarden in wanneer je het object maakt, door ze
als benoemde argumenten aan new mee te geven:
class Dog {
has $.name;
has $.age;
}
my $rex = Dog.new(name => 'Rex', age => 3);De $. in has $.name doet twee dingen
tegelijk: hij declareert een attribuut, en hij maakt een methode met
dezelfde naam — een accessor — die de waarde van het attribuut
teruggeeft:
say $rex.name; # Rex
say $rex.age; # 3Verschillende objecten bevatten hun eigen waarden, onafhankelijk van elkaar:
my $rex = Dog.new(name => 'Rex', age => 3);
my $fido = Dog.new(name => 'Fido', age => 5);
say $rex.name; # Rex
say $fido.name; # FidoDe volgende onderwerpen laten zien hoe je attributen wijzigbaar maakt en hoe je ze standaardwaarden geeft. (Er is ook een manier om private attributen te declareren, verborgen voor de buitenwereld; daar komen we op terug zodra methoden zijn geïntroduceerd.)
Onderwerpen in deze sectie
Praktijk
Maak de 1 quiz over de inhoud van deze sectie.
Oefeningen
Deze sectie bevat 4 oefeningen. Bekijk alle onderwerpen van deze sectie voordat je aan de oefeningen begint.
Cursusnavigatie
← Oplossing: Noem het type | Lees- en schrijfbare attributen →