Solidi di rotazione

Tratto da: F. Sanpietro, O. Sanpietro – Java: il linguaggio e la tecnologia – TRAMONTANA

SolidoRotazione è un’interfaccia per i solidi di rotazione sfera, cilindro, cono
image

public interface SolidoRotazione
{
   public static final double PIGRECO=3.14159;

   public abstract double superficie();
   public abstract double volume();
}

La classe Sfera implementa l’interfaccia SolidoRotazione

public class Sfera implements SolidoRotazione
{
   private double raggio;
 
   public Sfera(double r)
   {
       raggio=r;                                 
   }
 
   public double getRaggio()  { return raggio; }
   public double superficie() { return 4.0*PIGRECO*Math.pow(raggio, 2);   }
   public double volume()     { return 4.0/3*PIGRECO*Math.pow(raggio, 3); }
}

La classe Cilindro implementa l’interfaccia SolidoRotazione

public class Cilindro implements SolidoRotazione
 {
    private double raggio;
    private double altezza;
 
    public Cilindro(double r, double h)
    {
       raggio =r;
       altezza=h;
    }
     
    public double getRaggio()  { return raggio;  }
    public double getAltezza() { return altezza; }
 
    public double superficie() { return 2*PIGRECO*raggio*(altezza+raggio);   }
    public double volume()     { return PIGRECO*Math.pow(raggio, 2)*altezza; }
 
 }

La classe Cono implementa l’interfaccia SolidoRotazione

public class Cono implements SolidoRotazione
{
   private double raggio;
   private double altezza;
 
   public Cono(double r, double h)
   {
      raggio =r;
      altezza=h;
   }
 
   public double getRaggio()  { return raggio;  }
   public double getAltezza() { return altezza; }
 
   public double superficie() { double apotema=Math.sqrt(raggio*raggio+altezza*altezza);      
                                return PIGRECO*raggio*(apotema+raggio);       }
   public double volume()     { return PIGRECO*Math.pow(raggio, 2)*altezza/3; }
}