Cilindro has Cerchio

La classe Cerchio

public class Cerchio
{
   private double raggio;
   public  Cerchio(double r)      { raggio=r;                     }
   public  double diametro()      { return 2*raggio;              }
   public  double circonferenza() { return 2*Math.PI*raggio;      }
   public  double area()          { return Math.PI*raggio*raggio; }
}

La classe Cilindro utilizza la classe Cerchio

public class Cilindro
{
   private Cerchio c;
   private double  altezza;

   public Cilindro(double r, double h)
   {
      c=new Cerchio(r);
      altezza=h;
   }
   public double area()   { return 2*c.area() + c.circonferenza()*altezza; }
   public double volume() { return c.area()*altezza; }
}

La classe di test

public class Test_Cerchio_Cilindro
{
   public static void main(String[] args)
   {
      Cerchio  ce=new Cerchio(4.0);
      Cilindro ci=new Cilindro(4.0, 10.0);

      System.out.println("Cerchio  -> Diam = " + ce.diametro()      + "\n" +
                         "            Circ = " + ce.circonferenza() + "\n" +
                         "            Area = " + ce.area()          + "\n" +
                         "Cilindro -> Area = " + ci.area()          + "\n" +
                         "            Volu = " + ci.volume()        );
   }
}

Osserva

  1. c=new Cerchio(r);
  2. c.area()
    c.circonferenza()