⌛ Kuviot

Aseta vastauksesi tiedostoihin Circle.java, Rectangle.java ja IShapeMetrics.java1 kansiossa Round6/shapes. Muista nyhtää ``student_template_project``sta materiaalit.

1 Käytämme tässä tehtävässä tapaa nimetä rajapinta I-etuliitteellä. Tämä on vakiintunut käytäntö esimerkiksi C#-kielessä, ja jotkut käyttävät sitä myös Javassa.

Tässä tehtävässä kokeillaan yksinkertaista rajapinnan toteuttamista muutamalla luokalla. Toteuta:

  • Rajapinta IShapeMetrics, jossa:

    • Jäsenmuuttuja double PI, joka esittää piin likiarvon viiden desimaalin tarkkuudella.

    • Abstraktit jäsenfunktiot String name(), double area() ja double circumference().

  • Luokka Circle, joka toteuttaa rajapinnan IShapeMetrics ja tallettaa ympyrän säteen double-tyyppisenä. Julkiset jäsenet:

    • Rakennin Circle(double radius), joka asettaa säteen arvon.

    • Jäsenfunktio String toString(), joka palauttaa merkkijonon “Circle with radius: x”, jossa x on säteen arvo kahden desimaalin tarkkuudella.

    • Jäsenfunktio String name(), joka palauttaa merkkijonon “circle”.

    • Jäsenfunktio double area(), joka palauttaa ympyrän pinta-alan, jonka laskennassa on käytetty piin likiarvoa PI.

    • Jäsenfunktio double circumference(), joka palauttaa ympyrän piirin, jonka laskennassa on käytetty piin likiarvoa PI.

  • Luokka Rectangle, joka toteuttaa rajapinnan IShapeMetrics ja tallettaa suorakulmion korkeuden ja leveyden double-tyyppisinä. Julkiset jäsenet:

    • Rakennin Rectangle(double height, double width), joka asettaa pituuden ja leveyden.

    • Jäsenfunktio String toString(), joka palauttaa merkkijonon “Rectangle with height x and width y”, jossa x on suorakulmion korkeus ja y suorakulmion leveys kahden desimaalin tarkkuudella.

    • Jäsenfunktio String name(), joka palauttaa merkkijonon “rectangle”.

    • Jäsenfunktio double area(), joka palauttaa suorakulmion pinta-alan.

    • Jäsenfunktio double circumference(), joka palauttaa suorakulmion piirin.

Toteutuksen testaus

Voit testata luokkiasi tiedostossa InterfaceTest.java annetun valmiin testiohjelman sekä tiedostoissa output1.txt ja output2.txt annettujen esimerkkitulosteiden avulla. Aseta nämä tiedostot sekä omat luokkatoteutuksesi samaan hakemistoon, käännä ohjelma esim. tapaan javac *.java, ja suorita ensimmäinen testi tapaan java InterfaceTest "4" "5" "6.0" "7.0" ja toinen testi tapaan java InterfaceTest "4 4" "5 2" "6.0 12" "70.0 4". Suoritusten pitäisi tuottaa tiedostoissa output1.txt ja output2.txt kuvatut tulosteet.

A+ esittää tässä kohdassa tehtävän palautuslomakkeen.