🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi Incapsulamento Java

Codegrind Team•Jul 12 2024

Ecco degli esercizi con soluzione per praticare l’uso dell’incapsulamento in Java.

Esercizio 1: Creazione di una Classe con Attributi Privati

Creare una classe `Persona` con attributi privati `nome` e `etĂ ` e fornire metodi getter e setter per accedervi.
public class Persona {
    private String nome;
    private int eta;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getEta() {
        return eta;
    }

    public void setEta(int eta) {
        this.eta = eta;
    }

    public static void main(String[] args) {
        Persona persona = new Persona();
        persona.setNome("Mario");
        persona.setEta(30);
        System.out.println("Nome: " + persona.getNome());
        System.out.println("EtĂ : " + persona.getEta());
    }
}

Esercizio 2: Validazione nei Metodi Setter

Modificare la classe `Persona` per aggiungere validazione nei metodi setter.
public class Persona {
    private String nome;
    private int eta;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        if (nome != null && !nome.isEmpty()) {
            this.nome = nome;
        } else {
            throw new IllegalArgumentException("Il nome non può essere vuoto.");
        }
    }

    public int getEta() {
        return eta;
    }

    public void setEta(int eta) {
        if (eta > 0) {
            this.eta = eta;
        } else {
            throw new IllegalArgumentException("L'etĂ  deve essere positiva.");
        }
    }

    public static void main(String[] args) {
        Persona persona = new Persona();
        try {
            persona.setNome("Mario");
            persona.setEta(30);
            System.out.println("Nome: " + persona.getNome());
            System.out.println("EtĂ : " + persona.getEta());
        } catch (IllegalArgumentException e) {
            System.out.println(e.getMessage());
        }
    }
}

Esercizio 3: Incapsulamento con una Classe ContoBancario

Creare una classe `ContoBancario` con attributi privati `saldo` e `numeroConto`, e fornire metodi per depositare e prelevare denaro.
public class ContoBancario {
    private double saldo;
    private String numeroConto;

    public ContoBancario(String numeroConto) {
        this.numeroConto = numeroConto;
        this.saldo = 0.0;
    }

    public String getNumeroConto() {
        return numeroConto;
    }

    public double getSaldo() {
        return saldo;
    }

    public void deposita(double importo) {
        if (importo > 0) {
            saldo += importo;
        } else {
            throw new IllegalArgumentException("L'importo del deposito deve essere positivo.");
        }
    }

    public void preleva(double importo) {
        if (importo > 0 && importo <= saldo) {
            saldo -= importo;
        } else {
            throw new IllegalArgumentException("Importo di prelievo non valido.");
        }
    }

    public static void main(String[] args) {
        ContoBancario conto = new ContoBancario("12345");
        conto.deposita(1000);
        conto.preleva(500);
        System.out.println("Numero conto: " + conto.getNumeroConto());
        System.out.println("Saldo: " + conto.getSaldo());
    }
}

Esercizio 4: Incapsulamento con la Classe Libro

Creare una classe `Libro` con attributi privati `titolo`, `autore` e `prezzo`, e fornire metodi per accedere e modificare questi attributi.
public class Libro {
    private String titolo;
    private String autore;
    private double prezzo;

    public String getTitolo() {
        return titolo;
    }

    public void setTitolo(String titolo) {
        this.titolo = titolo;
    }

    public String getAutore() {
        return autore;
    }

    public void setAutore(String autore) {
        this.autore = autore;
    }

    public double getPrezzo() {
        return prezzo;
    }

    public void setPrezzo(double prezzo) {
        if (prezzo > 0) {
            this.prezzo = prezzo;
        } else {
            throw new IllegalArgumentException("Il prezzo deve essere positivo.");
        }
    }

    public static void main(String[] args) {
        Libro libro = new Libro();
        libro.setTitolo("Il Signore degli Anelli");
        libro.setAutore("J.R.R. Tolkien");
        libro.setPrezzo(25.99);
        System.out.println("Titolo: " + libro.getTitolo());
        System.out.println("Autore: " + libro.getAutore());
        System.out.println("Prezzo: " + libro.getPrezzo());
    }
}

Esercizio 5: Incapsulamento con la Classe Studente

Creare una classe `Studente` con attributi privati `nome`, `cognome` e `matricola`, e fornire metodi per accedere e modificare questi attributi.
public class Studente {
    private String nome;
    private String cognome;
    private String matricola;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getCognome() {
        return cognome;
    }

    public void setCognome(String cognome) {
        this.cognome = cognome;
    }

    public String getMatricola() {
        return matricola;
    }

    public void setMatricola(String matricola) {
        this.matricola = matricola;
    }

    public static void main(String[] args) {
        Studente studente = new Studente();
        studente.setNome("Mario");
        studente.setCognome("Rossi");
        studente.setMatricola("12345");
        System.out.println("Nome: " + studente.getNome());
        System.out.println("Cognome: " + studente.getCognome());
        System.out.println("Matricola: " + studente.getMatricola());
    }
}

Esercizio 6: Incapsulamento con la Classe Auto

Creare una classe `Auto` con attributi privati `marca`, `modello` e `anno`, e fornire metodi per accedere e modificare questi attributi.
public class Auto {
    private String marca;
    private String modello;
    private int anno;

    public String getMarca() {
        return marca;
    }

    public void setMarca(String marca) {
        this.marca = marca;
    }

    public String getModello() {
        return modello;
    }

    public void setModello(String modello) {
        this.modello = modello;
    }

    public int getAnno() {
        return anno;
    }

    public void setAnno(int anno) {
        if (anno > 1885) { // L'anno dell'invenzione della prima automobile
            this.anno = anno;
        } else {
            throw new IllegalArgumentException("Anno non valido.");
        }
    }

    public static void main(String[] args) {
        Auto auto = new Auto();
        auto.setMarca("Toyota");
        auto.setModello("Corolla");
        auto.setAnno(2021);
        System.out.println("Marca: " + auto.getMarca());
        System.out.println("Modello: " + auto.getModello());
        System.out.println("Anno: " + auto.getAnno());
    }
}

Esercizio 7: Incapsulamento con la Classe Prodotto

Creare una classe `Prod

ottocon attributi privatinome, categoriaeprezzo`, e fornire metodi per accedere e modificare questi attributi.

public class Prodotto {
    private String nome;
    private String categoria;
    private double prezzo;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getCategoria() {
        return categoria;
    }

    public void setCategoria(String categoria) {
        this.categoria = categoria;
    }

    public double getPrezzo() {
        return prezzo;
    }

    public void setPrezzo(double prezzo) {
        if (prezzo > 0) {
            this.prezzo = prezzo;
        } else {
            throw new IllegalArgumentException("Il prezzo deve essere positivo.");
        }
    }

    public static void main(String[] args) {
        Prodotto prodotto = new Prodotto();
        prodotto.setNome("Laptop");
        prodotto.setCategoria("Elettronica");
        prodotto.setPrezzo(799.99);
        System.out.println("Nome: " + prodotto.getNome());
        System.out.println("Categoria: " + prodotto.getCategoria());
        System.out.println("Prezzo: " + prodotto.getPrezzo());
    }
}