Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Klasoj kaj objektoj / Roloj / Exercises / Dorlotbesto kun nomo kaj aĝo

Solvo: Dorlotbesto kun nomo kaj aĝo

Jen ebla solvo de la tasko.

Kodo

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;

🦋 Vi povas trovi la fontkodon en la dosiero named-aged-pet.raku.

Eligo

I am Rex
3 years

Komentoj

  1. Pet kunmetas du rolojn samtempe, gajnante kaj la metodon label kaj la metodon status.

  2. La metodo de ĉiu rolo uzas atributon (nameage), kiun la klaso Pet provizas.

Kursa navigado

Dorlotbesto kun nomo kaj aĝo   |   Dancanta roboto