Le Classi Cerchio e Sfera in C#

In programmazione la sola teoria non basta, occorre esercitarsi e farlo moltissimo, poi iniziare a creare delle piccole applicazioni e solo dopo iniziare a dedicarsi ai software verticali. In quest’ottica continuiamo lo studio delle classi in C# creando l’esempio della classe cerchio e subito dopo la sua derivata in 3 dimensioni, la sfera. Per il cerchio troveremo la circonferenza e l’area, mentre per la sfera la superficie ed il volume. Il mio consiglio è di non guardare il codice scritto dal sottoscritto qui in basso, ma di utilizzarlo solo come confronto del vostro lavoro con il mio; quindi tentate di creare con il Visual C# Express due vostre classi.
Ecco come io le ho implementate:

using System;

public class CCerchio
{
   protected double m_dRaggio;

   public CCerchio() { m_dRaggio = 1.0; }
   public CCerchio(double dRaggio)
      { m_dRaggio = dRaggio; }
   public double Raggio() { return m_dRaggio; }
   public virtual double Circonferenza()
      { return 2.0 * Math.PI * m_dRaggio; }
   public virtual double Area()
      { return Math.PI * Math.Pow(m_dRaggio, 2.0); }
}

public class CSfera : CCerchio
{
   public CSfera() { m_dRaggio = 1.0; }
   public CSfera(double dRaggio) { m_dRaggio = dRaggio; }
   public virtual double Superficie()
       {  return 4.0 * Area(); }
   public virtual double Volume()
   {
       return (4.0 * Math.PI *
          Math.Pow(m_dRaggio, 3.0)) / 3.0;
   }
}

public class Corso
{
    static void Main(string[] args)
    {
        CSfera mySfera = new CSfera(12.50);
        Console.WriteLine("Il cerchio di raggio {0,2:n}
            ha una circonferenza di {1,2:n}",
            mySfera.Raggio(), Sfera.Circonferenza());
        Console.WriteLine("Il cerchio di raggio {0,2:n}
            ha un'area di {1,2:n}",
            mySfera.Raggio(), mySfera.Area());
        Console.WriteLine("La sfera di raggio {0,2:n}
           ha una superficie di {1,2:n}",
           mySfera.Raggio(), mySfera.Superficie());
        Console.WriteLine("La sfera di raggio
           {0,2:n} ha un volume di {1,2:n}",
           mySfera.Raggio(), mySfera.Volume());

        Console.ReadKey();
   }
}

Come potete notare ho ristretto alcuni metodi che possono risiedere su di una riga:
public CCerchio(double dRaggio)
{
   m_dRaggio = dRaggio;
}

come

public CCerchio(double dRaggio) { m_dRaggio = dRaggio; }

Altra peculiarità che va spiegata è la formattazione dei numeri nella funzione WriteLine. Il primo numero è l’indice del valore, 0 il primo, 1 il secondo, 2 il terzo e così via. Dopo l’indice va una virgola e la formattazione del valore, il primo numero sono i decimali ( nel nostro caso 2 ) ed n è per i numeri. Per approfondire questo argomento potete consultare la guida o fare una ricerca su Internet con “WriteLine Formatting”, come sapete io vi spiego le basi e poi voi da soli cercate informazioni per il web sui singoli casi; questo secondo me stimola la voglia di conoscere e la curiosità.

<< Lezione Precedente – Inizio CorsoIndice LezioniLezione Successiva >>

Di Giampaolo Rossi

Sviluppatore software da oltre 16 anni.