View Single Post
Old 30-01-2009, 17:58   #13
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2682
Così dici che va meglio? L'equals che ho scritto è corretto?

Codice:
public class ArticoloInSupermercato{
	
	// Array di stringhe di classe: rappresenta i reparti del supermercato
	private static String [] reparti = {"Ortofrutta", "macelleria", "pulizia casa", "benessere"};	
	
	private String nomeArticolo;  				// Nome dell'articolo in vendita, inizialmente a ull
	private double prezzoArticolo;		  		// Prezzo dell'articolo in vendita
	private int quantitaArticolo;	      		// Numero di oggetti in vendita per un certo articolo
	private int indiceReparto;           		// Indice di identificazione del reparto nell'array di classe reparti
	
	
	/** COSTRUTTORE: Inizializza tutte le variabili di istanza e crea un nuovo oggetto istanza della classe.
	    @param nome di tipo String
	    @param prezzo di tipo double
	    @param quantita di tipo int
	    @param indice di tipo int
	    @return il riferimento ad un oggetto di tipo ArticoloInSupermercato */
	    
	public ArticoloInSupermercato(String nome, double prezzo, int quantita, int indice){
		
		nomeArticolo = nome;			// Metti il riferimento della stringa nome in nome_Articolo
		prezzoArticolo = prezzo;		// Copia il valore double di prezzo in prezzo_Articolo
		quantitaArticolo = quantita;   // Copia il valore int di quantita in quantita_Articolo
		indiceReparto = indice; 		// Copia il valore int di indice in indice_Reparto
		
	}
	
	/* METODI DI ACCESSO AI DATI: */
	
	/** getNome: restituisce al chiamante il valore contenuto nel campo nome dell'oggetto ricevente
		@param void
		@return una stringa contenente il nome del prodotto */
		
	public String getNome(){
		return nomeArticolo;		// Ritorna al chiamante il riferimento alla stringa contenente il nome dell'articolo
	}
	
	/** getPrezzo: restituisce al chiamante il valore contenuto nel campo prezzo dell'oggetto ricevente
		@param void
		@return una double contenente il prezzo del prodotto */
		
	public double getPrezzo(){
		return prezzoArticolo;		// Ritorna al chiamante il riferimento alla stringa contenente il nome dell'articolo
	}
	
	/** getQuantita: restituisce al chiamante il valore contenuto nel campo prezzo quantita dell'articolo
		@param void
		@return un int contenente il numero di prodotti per uno specifico articolo */
		
	public int getQuantita(){
		return quantitaArticolo;
	}
	
	/** getRepartp: restituisce al chiamante il valore rappresentante l'indice nell'array dei reparti del supermercato
		@param void
		@return un int che rappresenta l'indice nell'array dei reparti del supermercato */
	
	public int getReparto(){
		return indiceReparto;
	}
	
	
	/* METODI DI UTILITA' */
	
	/** METODO toSting: Restituisce al chiamante una stringa contenente i dati contenuti nelle variabili di istanza di un
	    oggetto.
	    @param void
	    @return un oggetto di tipo String che contiene i dati delle variabili di istanza dell'oggetto ricevente sotto forma
	    di stringa */
	    
	public String toString(){
		
		String Risposta = "Il nome dell'articolo è: " + nomeArticolo + "Il prezzo è: " + prezzoArticolo + "Nel supermercato ci sono tot pezzi: " + quantitaArticolo + "L'articolo appartiene al reparto: " + reparti[indiceReparto];
    	return Risposta;
	}
	
	/** METODO EQUALS: ridefinisco il metodo equals per confrontare due oggetti istanza della classe ArticoliInSupermercato
		@parm prodotto di tipo ArticoloInSupermercato da confrontare con l'oggetto ricevente il messaggio
		@return esito di tipo boolean: TRUE se i due oggetti sono uguali, FALSE altrimenti. */
	
	public boolean equals(ArticoloInSupermercato prodotto){
		
		boolean esito = (nomeArticolo.equals(prodotto.nomeArticolo) && prezzoArticolo == prodotto.prezzoArticolo && quantitaArticolo == prodotto.quantitaArticolo && indiceReparto == prodotto.indiceReparto);
		
		return esito;
	}
	
}
Mi spieghi bene la storia che se gli passavo il vettore dei reparti ed inizializzavo in vettore di classe violavo il principio di incapsulation?

Grazie
Andrea

Ultima modifica di D4rkAng3l : 30-01-2009 alle 18:11.
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso