Raku-Kurs / Objekte, Ein- und Ausgabe und Ausnahmen / Klassen und Objekte / Rollen / Exercises / Ein Haustier mit Namen und Alter

Lösung: Ein Haustier mit Namen und Alter

Hier ist eine mögliche Lösung der Aufgabe.

Code

role Named {
    method label {
        'I am ' ~ self.name;
    }
}

role Aged {
    method status {
        self.age ~ ' years';
    }
}

class Pet does Named does Aged {
    has $.name;
    has $.age;
}

my $p = Pet.new(name => 'Rex', age => 3);
say $p.label;
say $p.status;

🦋 Du findest den Quellcode in der Datei named-aged-pet.raku.

Ausgabe

I am Rex
3 years

Kommentare

  1. Pet bindet zwei Rollen auf einmal ein und erhält so sowohl die Methode label als auch die Methode status.

  2. Die Methode jeder Rolle verwendet ein Attribut (name oder age), das die Klasse Pet bereitstellt.

Kursnavigation

Ein Haustier mit Namen und Alter   |   Ein tanzender Roboter