Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Incapsulamento | Principi OOP
C# Oltre le Basi

bookIncapsulamento

L'incapsulamento è fondamentalmente un metodo di organizzazione dei dati. Consiste nell'organizzare dati e metodi sotto forma di classi, in modo che l'intero programma sia essenzialmente basato sulle classi e che i dati e i metodi siano incapsulati all'interno di queste classi. Questo incapsulamento offre un modo per controllare l'accesso allo stato interno di un oggetto, promuovendo la modularità, la manutenibilità e la sicurezza in un sistema software.

Nell'incapsulamento si utilizzano gli Access Modifiers come public, private e protected per nascondere la maggior parte dei campi e dei metodi di una classe ed esporre solo quelli necessari per l'utilizzo dall'esterno.

Poiché la maggior parte dei dati non è direttamente accessibile dall'esterno della classe, si utilizzano getter e setter per accedere o modificare i dati.

Un buon esempio è una classe Customer che definisce il cliente di una banca:

index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132
public class Customer { private double accountBalance; private string customerName; private int pinCode; public Customer(double accountBalance, string customerName, int pinCode) { this.accountBalance = accountBalance; this.customerName = customerName; this.pinCode = pinCode; } public double getBalance(int pinCode) { if (pinCode == this.pinCode) return this.accountBalance; return } public void Deposit(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance += amount; } public void Withdraw(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance -= amount; } }

Nell'esempio sopra, nessun campo è direttamente accessibile o modificabile dall'esterno. Invece, si utilizzano metodi come Deposit e Withdraw per modificare il valore quando necessario. Allo stesso modo, per accedere al valore del saldo si utilizza il metodo getBalance.

L'uso della parola chiave public è generalmente sconsigliato, salvo quando strettamente necessario.

Note
Nota

Per ricordare, nel caso in cui si desideri mantenere un campo inaccessibile dall'esterno della classe ma accessibile dalle classi derivate, è possibile utilizzare il modificatore di accesso protected.

1. Quale ruolo svolgono i modificatori di accesso nell'incapsulamento in C#?

2. Quale dei seguenti specificatori di accesso dovrebbe essere utilizzato meno frequentemente per preservare l'incapsulamento?

question mark

Quale ruolo svolgono i modificatori di accesso nell'incapsulamento in C#?

Select the correct answer

question mark

Quale dei seguenti specificatori di accesso dovrebbe essere utilizzato meno frequentemente per preservare l'incapsulamento?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 6

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 2.04

bookIncapsulamento

Scorri per mostrare il menu

L'incapsulamento è fondamentalmente un metodo di organizzazione dei dati. Consiste nell'organizzare dati e metodi sotto forma di classi, in modo che l'intero programma sia essenzialmente basato sulle classi e che i dati e i metodi siano incapsulati all'interno di queste classi. Questo incapsulamento offre un modo per controllare l'accesso allo stato interno di un oggetto, promuovendo la modularità, la manutenibilità e la sicurezza in un sistema software.

Nell'incapsulamento si utilizzano gli Access Modifiers come public, private e protected per nascondere la maggior parte dei campi e dei metodi di una classe ed esporre solo quelli necessari per l'utilizzo dall'esterno.

Poiché la maggior parte dei dati non è direttamente accessibile dall'esterno della classe, si utilizzano getter e setter per accedere o modificare i dati.

Un buon esempio è una classe Customer che definisce il cliente di una banca:

index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132
public class Customer { private double accountBalance; private string customerName; private int pinCode; public Customer(double accountBalance, string customerName, int pinCode) { this.accountBalance = accountBalance; this.customerName = customerName; this.pinCode = pinCode; } public double getBalance(int pinCode) { if (pinCode == this.pinCode) return this.accountBalance; return } public void Deposit(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance += amount; } public void Withdraw(double amount, int pinCode) { if(pinCode == this.pinCode) accountBalance -= amount; } }

Nell'esempio sopra, nessun campo è direttamente accessibile o modificabile dall'esterno. Invece, si utilizzano metodi come Deposit e Withdraw per modificare il valore quando necessario. Allo stesso modo, per accedere al valore del saldo si utilizza il metodo getBalance.

L'uso della parola chiave public è generalmente sconsigliato, salvo quando strettamente necessario.

Note
Nota

Per ricordare, nel caso in cui si desideri mantenere un campo inaccessibile dall'esterno della classe ma accessibile dalle classi derivate, è possibile utilizzare il modificatore di accesso protected.

1. Quale ruolo svolgono i modificatori di accesso nell'incapsulamento in C#?

2. Quale dei seguenti specificatori di accesso dovrebbe essere utilizzato meno frequentemente per preservare l'incapsulamento?

question mark

Quale ruolo svolgono i modificatori di accesso nell'incapsulamento in C#?

Select the correct answer

question mark

Quale dei seguenti specificatori di accesso dovrebbe essere utilizzato meno frequentemente per preservare l'incapsulamento?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 5. Capitolo 6
some-alt