Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten / Methoden / Exercises / Oppervlakte van een rechthoek

Oplossing: Oppervlakte van een rechthoek

Hier is een mogelijke oplossing voor de taak.

Code

class Rectangle {
    has $.width;
    has $.height;

    method area {
        $.width * $.height;
    }

    method describe {
        "area is " ~ self.area;
    }
}

say Rectangle.new(width => 3, height => 4).describe;

🦋 Je kunt de broncode vinden in het bestand rectangle-area.raku.

Uitvoer

area is 12

Opmerkingen

  1. De methode area leest de eigen width en height van het object via hun accessors en vermenigvuldigt ze — voor een rechthoek van 3 bij 4 is dat 12.

  2. De methode describe herhaalt die berekening niet. In plaats daarvan roept ze self.area aan, waarmee de methode area op hetzelfde object draait en het resultaat hergebruikt wordt. Groter gedrag zo uit kleinere methoden opbouwen houdt elke methode verantwoordelijk voor één taak.

Cursusnavigatie

Oppervlakte van een rechthoek   |   Temperatuuromrekening