La programmazione orientata agli oggetti è uno dei paradigmi di programmazione più popolari. Questo perché modella sia i dati che le funzioni e ti consente di pensare in termini di oggetti del mondo reale. Le classi sono un aspetto fondamentale della programmazione orientata agli oggetti in quanto forniscono il progetto necessario per creare oggetti.

C# è un popolare linguaggio di programmazione multiparadigma, che utilizza il paradigma orientato agli oggetti. In questo articolo imparerai come creare e usare classi in C#.

Creazione di una dichiarazione di classe

In C#, una classe è un tipo di riferimento, che conterrà l'estensione nullo valore finché non crei un nuovo oggetto della classe. Per creare una nuova classe in C# avrai bisogno di diversi componenti:

  • Un modificatore di accesso.
  • Il classe parola chiave.
  • Il nome che vuoi assegnare alla classe.
  • Un paio di parentesi graffe aperte e chiuse (che racchiuderanno gli attributi, i costruttori e i metodi della classe).
interno classeCliente{ }
instagram viewer

Il codice precedente crea una nuova classe accessibile da altre classi nello stesso assembly (file di compilazione). C# ha esattamente sei modificatori di accesso che puoi usare per controllare i livelli di accessibilità di classi, variabili e metodi. I sei modificatori di accesso sono:

  • pubblico: ogni classe (indipendentemente dal suo assembly) può accedere alla classe pubblica e ai suoi membri pubblici (attributi, costruttori e metodi).
  • privato: solo la classe privata e i suoi membri possono accedervi.
  • protetto: solo le classi derivate (classi figlie e nipoti) possono accedere alla classe protetta.
  • interno: solo le classi dello stesso assembly possono accedere alla classe interna.
  • interno protetto: solo le classi nello stesso assembly o una classe derivata da un altro assembly possono accedere alla classe interna protetta.
  • privato protetto: solo le classi derivate nello stesso assembly possono accedere alla classe protetta privata.

Dichiarazione e accesso agli attributi

Gli attributi sono gli elementi costitutivi delle classi che crei. Contengono dati sensibili e di solito hanno un modificatore di accesso privato o protetto. Pertanto, per accedere a queste classi da classi esterne è necessario utilizzare accessori e mutatori (getter e setter).

C# ti consente di dichiarare i tuoi attributi, mutatori e accessori come segue:

interno classeCliente
{
// attributi
privatoint Numero ID;
privato stringa Nome;
privatoDoppio Totale;

// setter
pubblicovuotoSetIdNumber(int numero ID){ questo.NumeroID = NumeroID; }
pubblicovuotoImposta nome(nome stringa){ questo.Nome = Nome; }
pubblicovuotoImposta Totale(Doppio Totale){ questo.Totale = Totale; }

// getter
pubblicointGetIdNumber(){ Restituzionequesto.Numero ID; }
pubblico corda Ottieni nome(){ Restituzionequesto.Nome; }
pubblicoDoppioOttieni Totale(){ Restituzionequesto.Totale; }
}

Altro popolare linguaggi orientati agli oggetti utilizzare anche l'approccio di cui sopra. Infatti, se vuoi creare classi Java, dovrai usare la struttura sopra. Tuttavia, C# ora ha un modo più semplice per creare attributi e funzioni di accesso. In C#, questa classe ha la stessa funzione di quella precedente:

interno classeCliente
{
public int IdNumber { ottenere; impostare; }
stringa pubblica Nome { ottenere; impostare; }
pubblico doppio Totale { ottenere; impostare; }
}

La classe precedente contiene ciò che C# chiama proprietà, che è una combinazione di attributi (campi) e metodi. Insieme a proprietà, puoi ridurre della metà il codice della dichiarazione degli attributi, dei mutatori e degli accessori.

Costruttori dichiaranti

I costruttori sono un altro aspetto fondamentale di una classe. Per creare un oggetto da una classe dovrai chiamare uno dei suoi costruttori. Ogni costruttore ha un modificatore di accesso facoltativo e lo stesso nome della sua classe. Per i linguaggi di programmazione orientati agli oggetti, ci sono generalmente tre tipi di costruttori:

  • Costruttore predefinito: non accetta argomenti e fornisce a ciascun attributo un valore predefinito.
  • Costruttore primario: accetta uno o più argomenti (a seconda del numero di variabili nella classe).
  • Costruttore di copia: accetta un altro costruttore come argomento.

C# ha un termine generico per i costruttori predefiniti e primari sopra: costruttori di istanza. Questo linguaggio di programmazione ha anche altri due costruttori (privato e statico). Questo articolo si concentra sui tre costruttori tradizionali.

Costruttore predefinito

// costruttore predefinito
pubblico Cliente()
{
Numero ID = 0;
Nome = "sconosciuto";
Totale = 0;
}

Costruttore primario

// costruttore principale
pubblicoCliente(int IdNumber, stringa Nome, stringa CustomerType, Doppio Totale)
{
questo.NumeroID = NumeroID;
questo.Nome = Nome;
questo.Totale = Totale;
}

Costruttore di copie

// copia il costruttore
pubblico Cliente (Cliente precedenteCliente)
{
questo.IdNumber = cliente precedente. Numero ID;
questo.Nome = cliente precedente. Nome;
questo.Totale = Cliente precedente. Totale;
}

Metodi di creazione

I metodi non sono una componente cruciale della classe, ma sono utili. Una classe può avere uno o più metodi. Un metodo ha un modificatore di accesso, un tipo restituito, un nome e un corpo.

// metodo
pubblico stringa CustomerDetail()
{
Restituzione " ID: " + Numero ID + " Nome: " + Nome + " Totale: " + Totale;
}

Il codice sopra restituisce una rappresentazione di stringa dell'oggetto cliente.

Creazione di oggetti

Dopo aver creato una classe completa, dotandola di attributi, costruttori e un metodo, puoi iniziare a creare oggetti usando i diversi costruttori. Per creare un oggetto senza attributi, puoi utilizzare il costruttore predefinito:

Cliente Giovanni = nuovo Cliente();

La riga di codice sopra crea un cliente predefinito e lo assegna a una variabile chiamata John. Insieme a John, puoi accedere al valore predefinito di ogni attributo cliente.

Console.Linea di scrittura(John.Nome);

L'esecuzione del codice precedente stampa quanto segue nella console:

Sconosciuto

Puoi anche usare il John variabile per accedere a qualsiasi metodo nella classe cliente.

Console.Linea di scrittura(John.Dettagli cliente());

L'esecuzione della riga di codice precedente stampa il seguente output nella console:

ID: 0 Nome: sconosciuto Totale: 0

Per creare un oggetto con attributi, dovresti utilizzare il costruttore principale:

Cliente John = nuovo cliente (1001, "Giovanni Daina", 250.20);
Console.Linea di scrittura(John.Dettagli cliente());

L'esecuzione del codice precedente stampa il seguente output nella console:

ID: 1001 Nome: JohnDaiTotale: 250.2

Per creare una copia dell'oggetto sopra puoi usare il costruttore di copia:

Cliente Johnny = nuovo Cliente (Giovanni);
Console.Linea di scrittura(Johnny.Dettagli cliente());

L'esecuzione del codice precedente stampa il seguente output nella console:

ID: 1001 Nome: JohnDaiTotale: 250.2

Come puoi vedere, il costruttore di copia è una copia del costruttore principale. Il costruttore di copia può anche prendere un costruttore predefinito come argomento:

Cliente Giovanni = nuovo Cliente();
Cliente Johnny = nuovo Cliente (Giovanni);
Console.Linea di scrittura(Johnny.Dettagli cliente());

L'esecuzione del codice precedente stampa il seguente output nella console:

ID: 0 Nome: sconosciuto Totale: 0

Ora puoi creare e utilizzare classi C#

È possibile utilizzare il paradigma orientato agli oggetti in C# per definire classi e creare oggetti da esse. Puoi creare metodi per ogni classe che possono quindi operare sugli attributi dei loro oggetti.

Tuttavia, il paradigma orientato agli oggetti non è l'unico con cui devi avere familiarità. I primi tre paradigmi di programmazione sono imperativi, orientati agli oggetti e funzionali.