📢 Nuovo Corso Laravel API disponibile!

Esercizi Incapsulamento Java

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());
}
}