CONTATTACI

Guide per aspiranti programmatori

developer con sguardo di sfida che armeggia con due pc mettendosi alla prova con java
Lezione 23 / 47

Gli oggetti in Java

Arriviamo ora ad una delle parti più ostiche per i neofiti: nella programmazione informatica, e più specificatamente in un linguaggio orientato agli oggetti come Java, un oggetto è un’entità che rappresenta un’istanza di una classe. In termini più concreti, puoi pensare a una classe come a un “blueprint” o un progetto, e ad un oggetto come a una costruzione reale basata su quel progetto.

Capire gli oggetti in Java

Ecco alcuni punti chiave per comprendere meglio il concetto di oggetto in Java:

  • Analogia: Un modo per pensare agli oggetti è di immaginarli come oggetti nel mondo reale. Per esempio, se consideri la classe “Auto” come un progetto generico per un’automobile, allora un oggetto sarebbe una specifica automobile (come una Ferrari rossa del 2022) che è stata costruita seguendo le specifiche di quel progetto.
  • Stato: Gli oggetti hanno uno “stato”, che è rappresentato da attributi o variabili di istanza. Nell’esempio dell’auto, lo stato potrebbe includere cose come il modello, il colore, il numero di chilometri percorsi, ecc.
  • Comportamento: Gli oggetti hanno anche “comportamento”, che è rappresentato dai metodi della classe. I comportamenti sono le azioni che un oggetto può eseguire o che possono essere eseguite su di esso. Per l’auto, comportamenti potrebbero essere ‘accelerare’, ‘frenare’, ‘girare’, ecc.
  • Identità: Ogni oggetto ha un’identità unica, che in un ambiente di programmazione come Java viene gestita attraverso il riferimento all’oggetto. Anche se due oggetti hanno lo stesso stato, essi sono distinti e l’operazione su uno non influenzerà l’altro.
  • Incapsulamento Gli oggetti incapsulano (o nascondono) i dettagli di implementazione e espongono solo ciò che è necessario all’esterno. Questo significa che possono avere dati privati che possono essere letti o modificati solo attraverso metodi pubblici (getter e setter).

Supponiamo di avere una classe “Auto“:

 

public class Auto {
    private String modello;
    private String colore;
    private int anno;

    public Auto(String modello, String colore, int anno) {
        this.modello = modello;
        this.colore = colore;
        this.anno = anno;
    }

    public void accelera() {
        System.out.println(modello + " sta accelerando!");
    }
}

Per creare un oggetto “Auto” in Java, useresti:

Auto miaFerrari = new Auto("Ferrari", "Rosso", 2022);

‘miaFerrari’ è un oggetto che ha uno stato (modello, colore, anno) e comportamenti (come accelera). È un’istanza concreta della classe “Auto” che risiede in memoria, e puoi interagire con essa usando i suoi metodi.

 

Ma proviamo ora con la pratica a sviluppare un esercizio su queste tematiche.

“In una biblioteca, abbiamo diversi libri disponibili per il prestito e membri che desiderano prenderli in prestito. Ogni libro e ogni membro possono essere rappresentati come oggetti con i loro attributi e metodi specifici. Ad esempio, un libro può avere attributi come il titolo, l’autore e uno stato che indica se è attualmente in prestito o meno. Similmente, un membro della biblioteca può avere un nome e la capacità di prendere in prestito o restituire libri.”

 

La classe Libro rappresenta un libro nella biblioteca

 

public class Libro {
    private String titolo;
    private String autore;
    private boolean inPrestito;

    public Libro(String titolo, String autore) {
        this.titolo = titolo;
        this.autore = autore;
        this.inPrestito = false;
    }

    public String getTitolo() {
        return titolo;
    }

    public String getAutore() {
        return autore;
    }

    public boolean isInPrestito() {
        return inPrestito;
    }

    public void presta() {
        if (!inPrestito) {
            inPrestito = true;
            System.out.println(titolo + " è stato prestato.");
        } else {
            System.out.println(titolo + " è già in prestito.");
        }
    }

    public void restituisci() {
        if (inPrestito) {
            inPrestito = false;
            System.out.println(titolo + " è stato restituito.");
        } else {
            System.out.println(titolo + " non è in prestito.");
        }
    }
}

La classe Membro rappresenta un membro della biblioteca

 

public class Membro {
    private String nome;

    public Membro(String nome) {
        this.nome = nome;
    }

    public void prestaLibro(Libro libro) {
        libro.presta();
    }

    public void restituisciLibro(Libro libro) {
        libro.restituisci();
    }
}

Ora, usiamo queste classi per creare oggetti e gestire i prestiti dei libri.

 

public class BibliotecaDemo {
    public static void main(String[] args) {
        // Creazione di oggetti Libro
        Libro libro1 = new Libro("Il Signore degli Anelli", "J.R.R. Tolkien");
        Libro libro2 = new Libro("1984", "George Orwell");

        // Creazione di un oggetto Membro
        Membro membro1 = new Membro("Mario Rossi");

        // Mario Rossi prende in prestito "Il Signore degli Anelli"
        membro1.prestaLibro(libro1);

        // Verifichiamo se "Il Signore degli Anelli" è in prestito
        System.out.println("Il Signore degli Anelli è in prestito? " + libro1.isInPrestito());

        // Mario Rossi tenta di prendere in prestito "1984"
        membro1.prestaLibro(libro2);

        // Mario Rossi restituisce "Il Signore degli Anelli"
        membro1.restituisciLibro(libro1);

        // Verifichiamo nuovamente lo stato del prestito di "Il Signore degli Anelli"
        System.out.println("Il Signore degli Anelli è in prestito? " + libro1.isInPrestito());
    }
}

Questo esercizio mostra come gli oggetti possono essere utilizzati per rappresentare elementi come libri e membri in una biblioteca e per gestire le operazioni tra di loro, come prendere in prestito e restituire libri. Gli oggetti forniscono un modo intuitivo e flessibile per modellare concetti del mondo reale in un programma software.

 

L’output conferma il comportamento atteso:

  1. Il membro “Mario Rossi” ha preso in prestito il libro “Il Signore degli Anelli”, e il sistema ha confermato che il libro è stato prestato.
  2. È stato verificato che “Il Signore degli Anelli” è effettivamente in prestito.
  3. “Mario Rossi” ha, poi, preso in prestito il libro “1984”, e il sistema ha registrato anche questo prestito.
  4. Successivamente, “Mario Rossi” ha restituito “Il Signore degli Anelli”, e il sistema ha confermato che il libro è stato restituito.
  5. Alla verifica finale, “Il Signore degli Anelli” non è più in prestito.

Contattaci senza impegno per informazioni sul corso

Pagamento rateale

Valore della rata: A PARTIRE DA 115 €/mese.

Esempio di finanziamento 

Importo finanziato: € 2440 in 24 rate da € 115 – TAN fisso 9,55% TAEG 12,57% – importo totale del credito € 2841.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

*In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Pagamento rateale

Valore della rata: A PARTIRE DA 210 €/mese.

Esempio di finanziamento  

Importo finanziato: € 4500 in 24 rate da € 210,03 – TAN fisso 9,68% TAEG 11,97% – importo totale del credito € 5146,55.

Il costo totale del credito comprende: interessi calcolati al TAN indicato, oneri fiscali (imposta di bollo sul contratto 16,00 euro*) addebitati sulla prima rata, costo mensile di gestione pratica € 3,90, spesa di istruttoria € 0,00, spesa per invio rendicontazione periodica cartacea € 0,98 (o spesa per invio rendicontazione periodica cartacea € 0,00), imposta di bollo su rendicontazione periodica € 0,00. Modalità di rimborso obbligatoria: addebito diretto su c/c. La scadenza delle rate è determinata dal giorno della liquidazione del contratto; la data di scadenza delle rate è prevista il giorno 15 del mese. L’importo di ciascuna rata comprende una quota di capitale crescente e interessi decrescente secondo un piano di ammortamento “alla francese”. Offerta valida dal 01/01/2024 al 31/12/2024.

Messaggio pubblicitario con finalità promozionale. Per le informazioni precontrattuali richiedere sul punto vendita il documento “Informazioni europee di base sul credito ai consumatori” (SECCI) e copia del testo contrattuale. Salvo approvazione di Sella Personal Credit S.p.A. Aulab S.r.l. opera quale intermediario del credito NON in esclusiva.

* In fase di richiesta del finanziamento verrà proposta la facoltà di selezionare, in alternativa all’imposta di bollo sul contratto di 16,00 euro, l’imposta sostitutiva, pari allo 0,25% dell’importo finanziato.

Contattaci senza impegno per informazioni sul corso

Scopriamo insieme se i nostri corsi fanno per te. Compila il form e aspetta la chiamata di uno dei nostri consulenti.