Raku kurss / Objekti, ievade/izvade un izņēmumi / Klases un objekti / Lomas / Exercises / Mājdzīvnieks ar vārdu un vecumu

Risinājums: Mājdzīvnieks ar vārdu un vecumu

Šeit ir iespējams risinājums uzdevumam.

Kods

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;

🦋 Atrodiet programmu failā named-aged-pet.raku.

Izvade

I am Rex
3 years

Komentāri

  1. Pet komponē divas lomas uzreiz, iegūstot gan metodi label, gan status.

  2. Katras lomas metode izmanto atribūtu (name vai age), ko nodrošina klase Pet.

Kursa navigācija

Mājdzīvnieks ar vārdu un vecumu   |   Dejojošs robots