Megoldások

13.9.1. Készítsünk megfelelő osztályhierarchiát a hasáb és a gömb felszínének és térfogatának reprezentálására. Közös ősosztályuk neve legyen Test! A testek jellemző adatai (élek, sugár - cm-ben megadva) egész típusúak legyenek, a számított értékek pedig double típusúak!

    A Test absztrakt osztály lesz, mivel a felszín és a térfogat kiszámításának metódusai csak a leszármazott osztályokban implementálhatók:

A Hasáb osztály implementációja:

A Gömb osztály implementációja:

Figyeljük meg az ősosztályban absztraktként definiált felszín() és térfogat() metódusok implementálását!

 

13.9.2. Írjuk felül a két leszármazott osztály toString() metódusát úgy, hogy a példányaik adattagjai és a két metódusuk eredménye az alábbi formában jelenjenek meg (figyeljünk a Gömb osztálynál az 1 tizedes kerekítésre!):

Hasáb (élei: 5, 10, 15 cm)
 - felszíne  550 cm2
 - térfogata 750 cm3

Gömb (sugara: 10 cm)
 - felszíne  1256,6 cm2
 - térfogata 3141,6 cm3


A Hasáb osztály toString() metódusa:

A Gömb osztály toString() metódusa:


A Test osztály main metódusa:


Az eredmény:

 

13.9.3. Definiáljuk felül a Hasáb osztály equals() metódusát úgy, hogy két hasáb csak akkor legyen egyenlő, ha éleik hossza - függetlenül azok sorrendjétől - megegyezik!

Az equals() metódus felüldefiniálása:

Ellenőrzés:

Az eredmény:

 

13.9.4. Definiáljuk felül a Gömb osztály equals() metódusát úgy, hogy két gömb csak akkor legyen egyenlő, ha sugaruk megegyezik. Ellenőrizzük a metódus működését! Egészítsük ki ennek az osztálynak a definícióját úgy, hogy példányaik - sugaruk nagysága alapján - összehasonlíthatók legyenek!

Az equals() metódus felüldefiniálása:

Ellenőrzés:

Az eredmény:


A compareTo() metódus felülírása:

 

A feladatok forráskódja: Test.rar.