Esercizi Modificatori di aAccesso in C#
Ecco degli esercizi semplici con soluzione per praticare l’utilzzo degli modificatori di accesso delle classi in C#.
Esercizio 1
Dichiarare una classe chiamata "Persona" con una variabile privata "nome" e un metodo pubblico "StampaNome" che stampa il nome.
class Persona{ private string nome;
public void StampaNome() { Console.WriteLine("Nome: " + nome); }}
Esercizio 2
Aggiungere un costruttore pubblico alla classe "Persona" per impostare il valore della variabile "nome" all'inizializzazione dell'oggetto.
class Persona{ private string nome;
public Persona(string nome) { this.nome = nome; }
public void StampaNome() { Console.WriteLine("Nome: " + nome); }}
// Esempio di utilizzo del costruttorePersona persona = new Persona("Mario");persona.StampaNome();
Esercizio 3
Aggiungere una proprietĂ pubblica chiamata "Eta" alla classe "Persona" per consentire la lettura e la scrittura dell'etĂ della persona.
class Persona{ private string nome;
public Persona(string nome) { this.nome = nome; }
public void StampaNome() { Console.WriteLine("Nome: " + nome); }}
// Esempio di utilizzo del costruttorePersona persona = new Persona("Mario");persona.StampaNome();
Esercizio 4
Aggiungere un metodo privato chiamato "CalcolaAnnoDiNascita" alla classe "Persona" per calcolare l'anno di nascita basato sull'etĂ corrente.
class Persona{ private string nome; public int Eta { get; set; }
public Persona(string nome) { this.nome = nome; }
public void StampaNome() { Console.WriteLine("Nome: " + nome); }
private int CalcolaAnnoDiNascita() { int annoCorrente = DateTime.Now.Year; return annoCorrente - Eta; }}
// Esempio di utilizzo del metodo privatoPersona persona = new Persona("Mario");persona.Eta = 30;int annoDiNascita = persona.CalcolaAnnoDiNascita();Console.WriteLine("Anno di nascita: " + annoDiNascita);
Esercizio 5
Dichiarare una classe "Banca" con un campo privato "saldo" e un metodo pubblico "VisualizzaSaldo" che stampa il saldo disponibile.
class Banca{ private decimal saldo;
public void VisualizzaSaldo() { Console.WriteLine("Saldo: " + saldo); }}
Esercizio 6
Aggiungere un metodo protetto chiamato "PrelevaDenaro" alla classe "Banca" per consentire il prelievo di denaro dal saldo.
class Banca{ private decimal saldo;
public void VisualizzaSaldo() { Console.WriteLine("Saldo: " + saldo); }
protected void PrelevaDenaro(decimal importo) { saldo -= importo; }}
// Esempio di utilizzo del metodo protettoBanca banca = new Banca();banca.VisualizzaSaldo();banca.PrelevaDenaro(100);banca.VisualizzaSaldo();
Esercizio 7
Creare una classe "Prodotto" con un campo interno "prezzo" e un metodo interno "CalcolaSconto" per calcolare lo sconto sul prezzo del prodotto.
class Prodotto{ private decimal prezzo;
public void VisualizzaPrezzo() { Console.WriteLine("Prezzo: " + prezzo); }
internal decimal CalcolaSconto(decimal scontoPercentuale) { decimal sconto = prezzo * scontoPercentuale / 100; return prezzo - sconto; }}
// Esempio di utilizzo del metodo internoProdotto prodotto = new Prodotto();prodotto.VisualizzaPrezzo();decimal prezzoScontato = prodotto.CalcolaSconto(10);Console.WriteLine("Prezzo scontato: " + prezzoScontato);
Esercizio 8
Creare una classe "Cancello" con un campo protetto "aperto" e un metodo protetto "StatoCancello" per visualizzare lo stato attuale del cancello.
class Cancello{ protected bool aperto;
protected void StatoCancello() { if (aperto) Console.WriteLine("Il cancello è aperto."); else Console.WriteLine("Il cancello è chiuso."); }}
// Esempio di utilizzo del metodo protettoCancello cancello = new Cancello();cancello.StatoCancello();
Esercizio 9
Creare una classe "Database" con un campo privato "connessione" e un metodo privato "ConnettiDatabase" per stabilire la connessione al database.
class Database{ private string connessione;
private void ConnettiDatabase() { // Codice per stabilire la connessione al database }}
Esercizio 10
Creare una classe "Utente" con un campo interno "username" e un metodo interno "ValidaPassword" per verificare la correttezza della password inserita dall'utente.
class Utente{ internal string username;
internal bool ValidaPassword(string password) { // Codice per validare la password }}