From 26ec9ddbad5f80cb164e93ae1420bbeb9c91e00e Mon Sep 17 00:00:00 2001 From: Giacomo Radaelli Date: Thu, 11 May 2023 14:41:16 +0200 Subject: [PATCH] Correzione verifica informatica maggio --- corr-verifica-2maggio/Collezione.java | 20 +++++++++++++++ corr-verifica-2maggio/OperaDArte.java | 35 +++++++++++++++++++++++++++ corr-verifica-2maggio/Quadro.java | 32 ++++++++++++++++++++++++ corr-verifica-2maggio/Scultura.java | 35 +++++++++++++++++++++++++++ 4 files changed, 122 insertions(+) create mode 100644 corr-verifica-2maggio/Collezione.java create mode 100644 corr-verifica-2maggio/OperaDArte.java create mode 100644 corr-verifica-2maggio/Quadro.java create mode 100644 corr-verifica-2maggio/Scultura.java diff --git a/corr-verifica-2maggio/Collezione.java b/corr-verifica-2maggio/Collezione.java new file mode 100644 index 0000000..abb9532 --- /dev/null +++ b/corr-verifica-2maggio/Collezione.java @@ -0,0 +1,20 @@ +import java.util.ArrayList; + +public class Collezione { + private String nome; + private ArrayList opere; + + public Collezione(String nome) { + this.nome = nome; + opere = new ArrayList<>(); + } + + public void addOpera(OperaDArte o) { + opere.add(o); + } + + @Override + public String toString() { + return nome + "{" + opere.toString() + "}"; + } +} diff --git a/corr-verifica-2maggio/OperaDArte.java b/corr-verifica-2maggio/OperaDArte.java new file mode 100644 index 0000000..56461da --- /dev/null +++ b/corr-verifica-2maggio/OperaDArte.java @@ -0,0 +1,35 @@ +public abstract class OperaDArte implements Comparable { + private String titolo; + private String autore; + + public OperaDArte(String titolo, String autore) { + this.titolo = titolo; + this.autore = autore; + } + + + public abstract double ingombro(); + + @Override + public boolean equals(Object o) { + if(o==null || o.getClass() != getClass()) return false; + OperaDArte op = (OperaDArte) o; + + return titolo.equals(op.titolo) && autore.equals(op.autore); + } + + @Override + public int hashCode() { + return titolo.hashCode() + autore.hashCode(); + } + + @Override + public int compareTo(OperaDArte o) { + return Double.compare(ingombro(), o.ingombro()); + } + + @Override + public String toString() { + return titolo + " di " + autore; + } +} diff --git a/corr-verifica-2maggio/Quadro.java b/corr-verifica-2maggio/Quadro.java new file mode 100644 index 0000000..51f366f --- /dev/null +++ b/corr-verifica-2maggio/Quadro.java @@ -0,0 +1,32 @@ +public class Quadro extends OperaDArte { + private double larghezza; + private double altezza; + + public Quadro(String titolo, String autore, double larghezza, double altezza) { + super(titolo, autore); + this.larghezza = larghezza; + this.altezza = altezza; + } + + @Override + public double ingombro() { + return larghezza * altezza; + } + + @Override + public String toString() { + return super.toString() + larghezza + "x" + altezza + "(l*h)"; + } + + @Override + public boolean equals(Object o) { + if(!super.equals(o)) return false; + Quadro q = (Quadro) o; + return larghezza == q.larghezza && altezza == q.altezza; + } + + @Override + public int hashCode() { + return super.hashCode() + (int)larghezza + (int)altezza; + } +} diff --git a/corr-verifica-2maggio/Scultura.java b/corr-verifica-2maggio/Scultura.java new file mode 100644 index 0000000..495b9d9 --- /dev/null +++ b/corr-verifica-2maggio/Scultura.java @@ -0,0 +1,35 @@ +public class Scultura extends OperaDArte { + private double larghezza; + private double altezza; + private double profondita; + + public Scultura(String titolo, String autore, double larghezza, double altezza, double profondita) { + super(titolo, autore); + + this.larghezza = larghezza; + this.altezza = altezza; + this.profondita = profondita; + } + + @Override + public double ingombro() { + return larghezza * altezza * profondita; + } + + @Override + public String toString() { + return super.toString() + larghezza + "x" + altezza + "x" + profondita + "(l*h*p)"; + } + + @Override + public boolean equals(Object o) { + if(!super.equals(o)) return false; + Scultura s = (Scultura) o; + return larghezza == s.larghezza && altezza == s.altezza && profondita == s.profondita; + } + + @Override + public int hashCode() { + return super.hashCode() + (int)larghezza + (int)altezza + (int)profondita; + } +}