Raku kurss / Objekti, ievade/izvade un izņēmumi / Klases un objekti / Metodes / Exercises / Taisnstūra laukums
Risinājums: Taisnstūra laukums
Šeit ir iespējams risinājums uzdevumam.
Kods
class Rectangle {
has $.width;
has $.height;
method area {
$.width * $.height;
}
method describe {
"area is " ~ self.area;
}
}
say Rectangle.new(width => 3, height => 4).describe;🦋 Atrodiet programmu failā rectangle-area.raku.
Izvade
area is 12Komentāri
Metode
areanolasa objekta pašawidthunheightcaur to piekļuves metodēm un sareizina tos —3reiz4taisnstūrim tas ir12.Metode
describešo aprēķinu neatkārto. Tā vietā tā izsaucself.area, izpildot metodiareauz tā paša objekta un izmantojot tās rezultātu. Šāda lielākas uzvedības būvēšana no mazākām metodēm ļauj katrai metodei atbildēt par vienu darbu.