- COMP.CS.140
- 6. Luokkahierarkiat
- 6.6 ⌛ Kuviot
⌛ 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()
jadouble circumference()
.
Luokka
Circle
, joka toteuttaa rajapinnanIShapeMetrics
ja tallettaa ympyrän säteendouble
-tyyppisenä. Julkiset jäsenet:Rakennin
Circle(double radius)
, joka asettaa säteen arvon.Jäsenfunktio
String toString()
, joka palauttaa merkkijonon “Circle with radius: x
”, jossax
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 likiarvoaPI
.Jäsenfunktio
double circumference()
, joka palauttaa ympyrän piirin, jonka laskennassa on käytetty piin likiarvoaPI
.
Luokka
Rectangle
, joka toteuttaa rajapinnanIShapeMetrics
ja tallettaa suorakulmion korkeuden ja leveydendouble
-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
”, jossax
on suorakulmion korkeus jay
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.