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 Corso – Indice Lezioni – Lezione Successiva >>