C# - Classi: Una Guida per Principianti
Ciao a tutti, futuri programmatori! Oggi ci imbarcheremo in un viaggio emozionante nel mondo delle classi di C#. Non preoccupatevi se non avete mai programmato prima - sarò il vostro guida amichevole, spiegando tutto passo per passo. Allora, tuffiamoci!
Cos'è una Classe?
Prima di iniziare, capiremo cos'è una classe. Pensate a una classe come a un modello per creare oggetti. È come un tagliapasta che definisce la forma e le caratteristiche dei biscotti che farete. In programmazione, una classe definisce le proprietà e i comportamenti che gli oggetti di quella classe avranno.
Definire una Classe
Iniziamo creando una semplice classe. Creeremo una classe Dog
perché, beh, chi non ama i cani?
public class Dog
{
// Membri della classe qui
}
Questa è la struttura di base di una classe. La parola chiave public
significa che questa classe può essere accessibile da altre parti del vostro programma. Dentro le parentesi graffe {}
, definiranno i membri della classe.
Aggiungere Proprietà
Le proprietà sono come le caratteristiche del nostro cane. Aggiungiamo qualcuna:
public class Dog
{
public string Name;
public int Age;
public string Breed;
}
Ora la nostra classe Dog
ha un nome, un'età e una razza. Questi sono chiamati campi o proprietà della classe.
Funzioni Membro e Incapsulamento
Le funzioni membro (o metodi) sono azioni che il nostro cane può eseguire. Aggiungiamo un metodo per far abbaiare il nostro cane:
public class Dog
{
public string Name;
public int Age;
public string Breed;
public void Bark()
{
Console.WriteLine("Woof! Woof!");
}
}
Il metodo Bark
è un'azione semplice che stampa "Woof! Woof!" sulla console.
Incapsulamento
L'incapsulamento è come mettere le caratteristiche del vostro cane in una bolla protettiva. È un modo per controllare l'accesso ai membri della classe. Modifichiamo la nostra classe per utilizzare l'incapsulamento:
public class Dog
{
private string name;
private int age;
public string Breed { get; set; }
public string Name
{
get { return name; }
set { name = value; }
}
public int Age
{
get { return age; }
set
{
if (value > 0)
age = value;
}
}
public void Bark()
{
Console.WriteLine("Woof! Woof!");
}
}
Ora, name
e age
sono privati, e li accediamo attraverso proprietà pubbliche. Questo ci permette di aggiungere logica, come assicurarsi che l'età sia sempre positiva.
Costruttori in C
Un costruttore è un metodo speciale che viene chiamato quando create una nuova istanza di una classe. È come impostare il vostro cane quando lo avete per la prima volta. Aggiungiamo un costruttore alla nostra classe Dog
:
public class Dog
{
// ... codice precedente ...
public Dog(string name, int age, string breed)
{
Name = name;
Age = age;
Breed = breed;
}
}
Ora possiamo creare un nuovo cane così:
Dog myDog = new Dog("Buddy", 3, "Labrador");
Distruttori in C
I distruttori sono metodi che puliscono le risorse quando un oggetto non è più necessario. In C#, sono raramente utilizzati perché il garbage collector si occupa della gestione della memoria. Ma per completezza, ecco come li definireste:
public class Dog
{
// ... codice precedente ...
~Dog()
{
Console.WriteLine("Arrivederci, " + Name + "!");
}
}
Questo distruttore verrà chiamato quando l'oggetto cane viene distrutto dal garbage collector.
Membri Statici di una Classe C
I membri statici appartengono alla classe stessa, non a una specifica istanza. Sono condivisi da tutte le istanze della classe. Aggiungiamo un membro statico per tenere traccia di quanti cani abbiamo creato:
public class Dog
{
// ... codice precedente ...
public static int DogCount = 0;
public Dog(string name, int age, string breed)
{
Name = name;
Age = age;
Breed = breed;
DogCount++;
}
public static void ReportDogCount()
{
Console.WriteLine("Numero totale di cani: " + DogCount);
}
}
Ora, ogni volta che creiamo un nuovo Dog
, DogCount
aumenterà. Possiamo chiamare Dog.ReportDogCount()
in qualsiasi momento per vedere quanti cani abbiamo creato.
Mettere Tutto Insieme
Usiamo la nostra classe Dog
in un programma:
class Program
{
static void Main(string[] args)
{
Dog dog1 = new Dog("Buddy", 3, "Labrador");
Dog dog2 = new Dog("Max", 5, "German Shepherd");
Console.WriteLine(dog1.Name + " è un " + dog1.Breed);
dog1.Bark();
Console.WriteLine(dog2.Name + " ha " + dog2.Age + " anni");
dog2.Bark();
Dog.ReportDogCount();
}
}
Questo programma crea due cani, visualizza le loro informazioni, li fa abbaiare e riporta il numero totale di cani creati.
Conclusione
Congratulations! Avete appena imparato le basi delle classi in C#. Abbiamo coperto la definizione delle classi, l'aggiunta di proprietà e metodi, l'uso di costruttori e distruttori, e abbiamo anche toccato i membri statici. Ricordate, la pratica rende perfetti, quindi provate a creare le vostre classi e sperimentate con diverse proprietà e metodi.
Ecco una tabella che riassume i principali metodi che abbiamo discusso:
Metodo | Descrizione |
---|---|
Costruttore | Inizializza una nuova istanza della classe |
Distruttore | Pulisce le risorse quando l'oggetto viene distrutto |
Bark() | Fa abbaiare il cane |
ReportDogCount() | Riporta il numero totale di cani creati |
Continuate a programmare, e presto creerete programmi complessi con facilità. Buon apprendimento!
Credits: Image by storyset