Last Updated on 2 anni | Published: 20/04/2024
Principio dell' Incapsulamento
L’ incapsulamento è uno dei principi fondamentali della programmazione orientata agli oggetti (OOP) in Java. Questo principio implica l’incapsulamento dei dati (variabili) e dei comportamenti (metodi) all’interno di una singola entità chiamata classe. L’obiettivo principale dell’incapsulamento è nascondere i dettagli interni di come un oggetto funziona, esponendo solo le operazioni sicure e necessarie attraverso interfacce pubbliche.
L’ incapsulamento è importante per i seguenti motivi:
- Sicurezza: Protegge i dati interni da modifiche accidentali o inappropriate.
- Modularità: Facilita la manutenzione e l’aggiornamento del codice.
- Estensibilità: Consente di cambiare l’implementazione interna di una classe senza influenzare il codice client.
Un esempio semplice del principio di incapsulamento è stato visto con l’ articolo riguardante i JavaBean (Modificatori di Accesso), dove veniva mostrato come implementare una classe modello con gli attributi incapsulati, ed eccola di seguito:
Quando si hanno due o più classi in un programma Java, l’ incapsulamento permette di mantenere ogni classe indipendente, proteggendo i suoi dati interni e esponendo solo le operazioni necessarie attraverso metodi pubblici. Questo facilita la manutenzione, la modularità e la leggibilità del codice. Vediamo un esempio pratico con due classi: Studenti e Corsi.
// Attributi privati
private String nomeCorso;
private int crediti;
// Costruttore
public Corsi(String nomeCorso, int crediti) {
this.nomeCorso = nomeCorso;
this.crediti= crediti;
}
// Metodi pubblici per accedere ai dati (getter)
public String getNomeCorso() {
return nomeCorso;
}
public int getCrediti() {
return crediti;
}
}
// Attributi privati
private String nome;
private String cognome;
private int matricola;
// Attributo per incapsulare un oggetto Corso
private Corso iscrizione;
Costruttore
public Studenti(String nome, String cognome,
int matricola, Corso iscrizione) {
this.nome = nome;
this.cognome = cognome;
this.matricola = matricola;
this.iscrizione= iscrizione;
}
// Metodi pubblici per accedere ai dati (getter)
public String getNome() {
return nome;
}
public String getCognome() {
return cognome;
}
public int getMatricola() {
return matricola;
}
// Metodo per ottenere il nome del corso
public String getNomeCorso() {
return iscrizione.getNomeCorso();
}
// Metodo per ottenere il numero di crediti del corso
public int getCrediti() {
return iscrizione.getNumeroCrediti();
}
}
public class Test {
Nel prossimo Articolo parleremo delle Interfacce che rappresenta un concetto fondamentale della OOP che permette di definire un contratto comune per un insieme di classi, promuovendo così la modularità ………
LABORATORIO
Importare il progetto in Eclipse prospettiva SE che implementa due classi, Persone e Studenti e mostra l’ utilizzo di oggetti incapsulati.
-
incapsulamento.zip
(zip, 6KB)
-
