Principio dell’ Incapsulamento

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:

  1. Sicurezza: Protegge i dati interni da modifiche accidentali o inappropriate.
  2. Modularità: Facilita la manutenzione e l’aggiornamento del codice.
  3. 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:

Modello Auto

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.

public class 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;
        }
}

public class Studenti {

       // 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 {

    public static void main(String[] args) {
       Corsi corso = new Corsi(“Programmazione Java“, 5);
       Studenti studente = new Studenti(“Mario“, “Rossi“, 12345, corso);
      System.out.println(studente.getNome() + “corso di  “+studente.getNomeCorso()); 
      System.out.println(“Il corso ha crediti ” + studente.getNumeroCreditiCorso());
   }
}

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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *