ciao a tuttisto studiando la relazione di composizione di classi e ho dedotto questo: per evitare la rottura dell'incapsulamento passando riferimenti come parametri d'ingresso o di uscita dei metodi bisogna simulare i passaggi per valore. Ora mi sto esercitando ed ho ideato una classe Spesa che è una composizione di oggetti della classe Prodotto;il codice è questo
dove la classe prodotto è la seguente:codice:public class Spesa { //attributi private ArrayList<Prodotto> ProdottiAcquistatati=new ArrayList<>(); //riferimento //costruttori public Spesa() {} public Spesa(ArrayList<Prodotto> s) //simulazione passaggio per valore { Iterator<Prodotto> iter=s.iterator(); for(Prodotto p:s) { this.ProdottiAcquistatati.add(new Prodotto(iter.next().getPeso(), iter.next().getPrezzoEtto(),iter.next().getScontoPercentuale())); } } // metodi public ArrayList<Prodotto> getSpesa() //simulazione passaggio per valore { ArrayList<Prodotto> s=new ArrayList<>(); Iterator<Prodotto> iter=this.ProdottiAcquistatati.iterator(); for(Prodotto p:this.ProdottiAcquistatati) { s.add(new Prodotto(iter.next().getPeso(),iter.next().getPrezzoEtto(), iter.next().getScontoPercentuale())); } return s; } public void setProdottiAcquistati(ArrayList<Prodotto> s) { this.ProdottiAcquistatati=s; }
Ora volevo sapere se ho rispettato l'incapsulamento e quindi ho simulato bene il passaggio per valore. Grazie in anticipo per l'aiutocodice:public class Prodotto { //atributi private double Peso=0;//peso in kg private double PrezzoEtto=0; //prezzo all'etto private int ScontoPercentuale=0; //sconto in percentuale //costruttori public Prodotto() {} public Prodotto(double p,double pr,int s) { this.Peso=p; this.PrezzoEtto=pr; this.ScontoPercentuale=s; } //metodi public double getPeso() { return this.Peso; } public double getPrezzoEtto() { return this.PrezzoEtto; } public int getScontoPercentuale() { return this.ScontoPercentuale; } public void setPeso(float p) { this.Peso=p; } public void setPrezzoEtto(float pr) { this.PrezzoEtto=pr; } public void setScontoPercentuale(int s) { this.ScontoPercentuale=s; } @Override public String toString() { return "Peso: "+this.Peso+" Prezzo all'etto:"+this.PrezzoEtto+ " Sconto in Percentuale: "+this.ScontoPercentuale; } }![]()

sto studiando la relazione di composizione di classi e ho dedotto questo: per evitare la rottura dell'incapsulamento passando riferimenti come parametri d'ingresso o di uscita dei metodi bisogna simulare i passaggi per valore. Ora mi sto esercitando ed ho ideato una classe Spesa che è una composizione di oggetti della classe Prodotto;il codice è questo
Rispondi quotando
