Classe Cerchio

Una classe per l’ente geometrico cerchio

public class Cerchio
{
   private double raggio;

   public void   raggio(double Raggio) { raggio=Raggio; }
   public double diametro()            { return 2*raggio; }
   public double circonferenza()       { return 2*Math.PI*raggio; }
   public double area()                { return Math.PI*raggio*raggio; }
}

I metodi con prefisso set/get permettono di esplicitare la modalità d’accesso

public class Cerchio
{
   private double raggio;

   public void   setRaggio(double Raggio) { raggio=Raggio; }
   public double getRaggio()              { return raggio; }
   public double diametro()               { return 2*raggio; }
   public double circonferenza()          { return 2*Math.PI*raggio; }
   public double area()                   { return Math.PI*raggio*raggio; }
}

Se gli accessi in lettura sono ripetuti si può decidere di calcolare i diversi risultati una sola volta…

public class Cerchio
{
   private double raggio;
   private double diametro,
                  circonferenza,
                  area;
   public void setRaggio(double Raggio)
   {
      raggio       =Raggio;
      diametro     =2*raggio;
      circonferenza=2*Math.PI*raggio;
      area         =Math.PI*raggio*raggio;
   }
   public double getDiametro()      { return diametro; }
   public double getCirconferenza() { return circonferenza; }
   public double getArea()          { return area; }
}

La fase di input e di inizializzazione è affidata al costruttore…

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

… anche con l’ausilio di un metodo privato

public class Cerchio
{
   private double raggio;
   private double diametro, 
                  circonferenza, 
                  area;
   public Cerchio(double Raggio)
   {
      raggio=Raggio;
      calcola();
   }
   private void calcola()
   {
      diametro     =2*raggio;
      circonferenza=2*Math.PI*raggio;
      area         =Math.PI*raggio*raggio;
   }
   ...
}


Se si decide di aggiungere altri attributi (x, y, colore, …) è necessario accompagnarli con i relativi costruttori e metodi di accesso

public class Cerchio
{
   private double raggio;
   private double diametro, 
                  circonferenza, 
                  area;
   private double x, 
                  y;
   private long   colore;

   public Cerchio(double Raggio)                     { ... }
   public Cerchio(double Raggio, double X, double Y) { ... }
   ...
   public long getColore()                           { ... }
   ...
}