Incapsulamento nel Java
In cosa consiste l'incapsulamento Java?
Incapsulamento nel Java è un meccanismo per racchiudere variabili (dati) e metodi (codice) insieme come una singola unità. È il processo di nascondere i dettagli informativi e proteggere i dati e il comportamento dell'oggetto. È uno dei quattro importanti concetti OOP. La classe encapsulate è facile da testare, quindi è anche migliore per i test unitari.
Clicchi Qui. se il video non è accessibile
Impara l'incapsulamento in Java con l'esempio
Per comprendere in dettaglio cos'è l'incapsulamento, si consideri la seguente classe di conto bancario con i metodi di deposito e di visualizzazione del saldo
class Account {
private int account_number;
private int account_balance;
public void show Data() {
//code to show data
}
public void deposit(int a) {
if (a < 0) {
//show error
} else
account_balance = account_balance + a;
}
}
Supponiamo che un hacker sia riuscito ad accedere al codice del tuo conto bancario. Ora, cerca di depositare l'importo -100 sul tuo conto in due modi. Vediamo il suo primo metodo o approccio.
Approccio 1: Tenta di depositare un importo non valido (diciamo -100) sul tuo conto bancario manipolando il codice.
Ora, la domanda è: E 'possibile? Indaghiamo. Di solito, una variabile in una classe è impostata come "privata" come mostrato di seguito. È possibile accedervi solo con i metodi definiti nella classe. Nessun'altra classe o oggetto può accedervi.
Se un membro dati è privato, significa che è possibile accedervi solo all'interno della stessa classe. Nessuna classe esterna può accedere al membro dati privato o alla variabile di un'altra classe. Quindi nel nostro caso l'hacker non può depositare l'importo -100 sul tuo account.
Approccio 2: Il primo approccio dell'hacker non è riuscito a depositare l'importo. Successivamente, prova a depositare un importo pari a -100 utilizzando il metodo "deposito".
Ma l'implementazione del metodo ha un controllo per i valori negativi. Quindi anche il secondo approccio fallisce.
Pertanto, non esponi mai i tuoi dati a una parte esterna. Ciò rende la tua applicazione sicura.
L'intero codice può essere pensato come una capsula, e si può comunicare solo attraverso i messaggi. Da qui il nome incapsulamento.
Dati nascosti Java
Dati nascosti Java nasconde le variabili di una classe ad altre classi. Vi si può accedere solo tramite il metodo della loro classe corrente. Nasconde i dettagli di implementazione agli utenti. Ma più che nascondere i dati, è pensato per una migliore gestione o raggruppamento di dati correlati. Per ottenere un grado minore di incapsulamento in Java, puoi usare modificatori come "protected" o "public". Con l'incapsulamento, gli sviluppatori possono modificare facilmente una parte del codice senza influenzare le altre.
Entrano Getter e Setter Java
Entrano Getter e Setter Java sono due metodi convenzionali utilizzati per recuperare e aggiornare i valori di una variabile. Vengono utilizzati principalmente per creare, modificare, eliminare e visualizzare i valori delle variabili. Il metodo setter viene utilizzato per aggiornare i valori e il metodo getter viene utilizzato per leggere o recuperare i valori. Sono anche conosciuti come accessori e mutatori.
Il codice seguente è un esempio dei metodi getter e setter:
class Account{
private int account_number;
private int account_balance;
// getter method
public int getBalance() {
return this.account_balance;
}
// setter method
public void setNumber(int num) {
this.account_number = num;
}
}
Nell'esempio precedente, il metodo getBalance() è il metodo getter che legge il valore della variabile account_balance e il metodo setNumber() è il metodo setter che imposta o aggiorna il valore per la variabile account_number.
Astrazione vs. incapsulamento
Spesso l'incapsulamento viene frainteso Astrazione. Studiamo-
- L'incapsulamento riguarda più il "come" ottenere una funzionalità
- L’astrazione riguarda più “cosa” una classe può fare.
Un semplice esempio per comprendere questa differenza è un telefono cellulare, in cui la logica complessa nel circuito stampato è incapsulata in un touch screen e l'interfaccia è fornita per astrarla.
Vantaggi dell'incapsulamento in Java
- L'incapsulamento vincola i dati con le relative funzionalità. Qui le funzionalità significano “metodi” e i dati significano “variabili”
- Quindi manteniamo variabili e metodi in un unico posto. Quel posto è “di classe”. La classe è la base per l'incapsulamento.
- Con Java Incapsulamento: puoi nascondere (limitare l'accesso) ai dati critici nel tuo codice, migliorando la sicurezza
- Come abbiamo discusso in precedenza, se un membro dati è dichiarato "privato", allora è possibile accedervi solo all'interno della stessa classe. Nessuna classe esterna può accedere al membro dati (variabile) di un'altra classe.
- Tuttavia, se è necessario accedere a queste variabili, è necessario utilizzare “getter” e “setter” pubblici metodi.






