La programmazione orientata agli oggetti (OOP) è un paradigma che si basa sull’uso di classi e oggetti per creare modelli del mondo reale. In C#, tutto ruota attorno a questi concetti, permettendo di organizzare il codice in modo più modulare e riutilizzabile.
Dichiarazione di una classe in C#
In C#, una classe è un blueprint da cui possono essere creati gli oggetti. Le classi contengono proprietà e metodi che definiscono il comportamento e le caratteristiche dell’oggetto.
Sintassi per dichiarare una classe:
public class Persona
{
public string Nome;
public int Eta;
public void Saluta()
{
Console.WriteLine($"Ciao, mi chiamo {Nome} e ho {Eta} anni.");
}
}
Creazione di un oggetto
Un oggetto è un’istanza di una classe. Per creare un oggetto, usiamo la parola chiave new seguita dal nome della classe.
Esempio di creazione di un oggetto:
Persona persona1 = new Persona();
persona1.Nome = "Mario";
persona1.Eta = 30;
Accesso alle proprietà di un oggetto
Le proprietà di un oggetto, come Nome ed Eta, possono essere facilmente modificate o lette utilizzando la notazione punto.
Esempio di accesso alle proprietà:
Console.WriteLine(persona1.Nome); // Output: Mario
Console.WriteLine(persona1.Eta); // Output: 30
Chiamata dei metodi di un oggetto
Oltre ad avere proprietà, un oggetto può eseguire azioni definite dai suoi metodi. Possiamo richiamare un metodo con la stessa notazione punto utilizzata per accedere alle proprietà.
Esempio di chiamata di un metodo:
persona1.Saluta(); // Output: Ciao, mi chiamo Mario e ho 30 anni.
I costruttori: cosa sono e a cosa servono
Un costruttore è un metodo speciale che viene chiamato automaticamente quando viene creato un nuovo oggetto. Il suo scopo è inizializzare l’oggetto.
Esempio di costruttore:
public class Persona
{
public string Nome;
public int Eta;
// Costruttore
public Persona(string nome, int eta)
{
Nome = nome;
Eta = eta;
}
}
Costruttori multipli
In C#, è possibile avere più di un costruttore all’interno della stessa classe, ciascuno con una diversa firma (parametri). Questo è noto come overloading.
Esempio di overload del costruttore:
public class Persona
{
public string Nome;
public int Eta;
// Costruttore 1
public Persona(string nome)
{
Nome = nome;
Eta = 0; // Età di default
}
// Costruttore 2
public Persona(string nome, int eta)
{
Nome = nome;
Eta = eta;
}
}