La programmazione orientata agli oggetti (in inglese object-oriented programming, in acronimo OOP) caratteristica di C# si fonda su tre pilastri

  1. L’incapsulamento è l’incorporare all’interno di un contenitore, la classe, sia i dati che descrivono un esemplare di tipo di oggetto, sia i metodi (funzioni) che operano con questi dati. I metodi definiscono il comportamento di un oggetto. La classe quindi non definisce un singolo oggetto, ma è come se fosse lo stampino per creare tanti oggetti di quel tipo con ciascuno i suoi valori (es la classe famiglia può essere usata per costruire tutti gli oggetti che rappresentano i membri della famiglia.)

     

     

  2. L'erederietà in C# significa che una classe può lasciare una proprietà o una metodologia a una classe successiva. Questo consente agli utenti di creare delle classi simili alle proprie classe senza dover ricaricare il codice della classe originale. Ciò permette di “programmare per differenze”, utilizzando classi madre che raccolgano le proprietà e delle funzioni generali appartenente ad un tipo di oggetto e delle classi figlie per descrivere delle proprietà particolari che appartengono solo ad un oggetto specifico. Per esempio in un videogioco si potrebbe creare una classe che descriva gli umanoidi raccogliendo diverse proprietà e metodi due sottoclassi figlie “buoni” e “cattivi”. Così facendo senza dover replicare tutto il codice da zero per le varie proprietà (altezza, peso, colore capelli, divisa, ecc ecc), si va a pescare dalla classe madre (in modo tale che in caso di manutenzione del codice si andrà a modificare il codice una volta soltanto nella classe madre) e si programma per differenza solo dei comportamenti specifici che devono compiere tali personaggi.

  3. Modularità & information hiding, nel caso di progetti grandi a più mani può essere indispensabile dividere il lavori in più parti, moduli, ed affidarli a diversi sviluppatori. Il singolo sviluppatore non può o non deve essere a conoscenza di ogni singola riga di codice dei moduli sviluppati dagli altri sviluppatori, ma egli vede solo il minimo ed indispensabile previsto dai colleghi. Infatti può essere pericoloso dare la possibilità di effettuare assegnamenti diretti ad un variabile da un altro modulo da parte di un soggetto che non ne conosce pienamente il funzionamento, bypassando eventuali controlli sui valori immessi, in questi contesti C# lavora egregiamente offrendo dei livelli di accesso alle singole variabili o metodi rendendoli accessibili oppure nascondendoli.

    Il livello di protezione di una variabile in C# determina la visibilità e l'accessibilità della variabile all'interno del codice del programma. Ci sono tre livelli di protezione in C#: public, private e protected.

  1. Public: Una variabile dichiarata come public è accessibile da qualsiasi parte del codice, che si trovi all'interno o all'esterno della classe che la contiene. Questo livello di protezione è utile per le variabili che devono essere condivise tra diverse parti del codice.

  2. Private: Una variabile dichiarata come private è accessibile solo all'interno della classe che la contiene. Questo livello di protezione è utile per le variabili che non devono essere accessibili da altre parti del codice e che devono essere protette da modifiche indesiderate.

  3. Protected: Una variabile dichiarata come protected è accessibile solo all'interno della classe che la contiene e dalle classi che ereditano da essa. Questo livello di protezione è utile per le variabili che devono essere condivise tra le classi ereditate, ma che non devono essere accessibili da altre parti del codice.

    In generale, si consiglia di dichiarare le variabili private o protected se non sono necessari accessi esterni e di dichiarare le variabili public se è necessario condividerle con altre parti del codice. Questo aiuta a mantenere la sicurezza e l'integrità del codice, limitando l'accesso alle varibili.

 

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.