Il TreeSet l' ho usato perchè mi serviva restituire una collezione senza duplicati. E per quanto riguarda l'iteratore mi viene chiesto esplicitamente di restiuire un iteratore.
Questa è la classe Prodotto:
Questa è la classe ProdottoScontato:codice:import java.io.Serializable; import java.util.Scanner; public class Prodotto implements Serializable { static int codice; int codiceProd = 0; String nome; String descrizione; double prezzo; Scanner in = new Scanner(System.in); public Prodotto(){ codice++; codiceProd = codice; } public Prodotto(String nome, String descrizione, double prezzo) { this(); this.nome = nome; setPrezzo(prezzo); this.descrizione = descrizione; } public Prodotto(String nome, double prezzo) { this(nome, null, prezzo); } public void setDescrizione(String descrizione) { this.descrizione = descrizione; } public double getPrezzo() { return prezzo; } public void setPrezzo(double nuovoPrezzo) { try { prezzo = nuovoPrezzo; if (nuovoPrezzo < 0) { throw new ExceptionPrezzoNegativo(); } } catch (ExceptionPrezzoNegativo e) { System.out.println(e.getMessage()); System.out.println("Inserire nuovo prezzo:"); nuovoPrezzo = in.nextDouble(); setPrezzo(nuovoPrezzo); } } public String toString() { if (descrizione != null) { return codiceProd + " " + " " + nome + " " + descrizione + " " + prezzo; } else { return codiceProd + " " + " " + nome + " " + prezzo; } } public boolean equals(Object obj) { Prodotto prod = (Prodotto) obj; if(codiceProd == prod.codiceProd){ return true; }else{ return false; } } }
codice:import java.util.Scanner; public class ProdottoScontato extends Prodotto{ double sconto; Scanner in = new Scanner(System.in); public ProdottoScontato(String nome, String descrizione, double prezzo, double sconto) { super(); setSconto(sconto); this.nome = nome; this.descrizione = descrizione; this.prezzo = prezzo; } public ProdottoScontato(String nome, double prezzo, double sconto) { super(); setSconto(sconto); this.nome = nome; setPrezzo(prezzo); } public double getPrezzo() { return sconto * 100 / super.getPrezzo() ; } private void setSconto(double sconto){ try { this.sconto = sconto; if(this.sconto < 0 || this.sconto > 90){ throw new ScontoException(); } }catch(ScontoException e){ System.out.println(e.getMessage()); System.out.println("Inserire un nuovo sconto valido: "); sconto = in.nextDouble(); setSconto(sconto); } } }

Rispondi quotando
