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 >>