import java.util.*;
import java.text.NumberFormat;

/**
*  Un oggetto di classe <code>Prezzo</code> rappresenta un prezzo in euro.  
* <BR>
* <ul>
*<li>  Il valore di un prezzo &egrave; rappresentato da un <code>double</code>.
*</li>
*
*
*<li>
*Per  rappresentare   un prezzo con una opportuna stringa, viene usato un oggetto
* di classe  <code>NumberFormat</code>.
*
*</li>
* </ul>
* 
*<BR> 
* <strong>NOTA</strong> 
*<BR>
* Per semplicit&agrave; il valore di un prezzo viene rappresentato da un  <code>double</code>.
*<BR>
* Come segnalato  in 
* <A "href=http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html>
* http://java.sun.com/docs/books/tutorial/java/nutsandbolts/datatypes.html</a>
*  i tipi primitivi <code>double</code>,  <code>float</code>, ..  
*  <em>"should never be used for precise values, such as currency.
*   For that, you will need to use the java.math.BigDecimal class instead"</em>.
* <BR>
*  L'implementazione pu&ograve; essere migliorata  in una fase successiva,
*  mantenendo inalterata  la parte pubblica (e quindi l'uso della classe).
*  
*
*/




public class Prezzo {
    


// CAMPI
    
    
    private double valore;   
    private static NumberFormat formato = NumberFormat.getCurrencyInstance(Locale.ITALY); // formato per la stampa 

//   Locale.ITALY  e' il campo  ITALY della classe Locale (campo pubblico)



// COSTRUTTORI



    

/**
* Costruisce un oggetto che rappresenta il prezzo  specificato  come argomento.
*/



    public Prezzo(double valore){
	// ....
    }



 /**
 * Costruisce un oggetto che rappresenta il prezzo  in cui il valore
 * degli <code>euro</code> e dei  <code>centesimo</code> sono quelli 
 * specificati dagli argomenti.
 *
 */


    public Prezzo(int euro, int centesimi)  {
	// chiamare il costruttore precedente
    }



 /**
 * Costruisce un oggetto che rappresenta il prezzo in cui il valore
 * degli <code>euro</code> &egrave; specificato dall'argomento.
 */


  public Prezzo(int euro)  {
      	// chiamare uno dei costruttori precedenti
    }


    // METODI


 /** Restituisce una stringa che rappresenta il prezzo  che esegue il metodo.
    */


    // riscrive toString della classe Object 

  
    public String toString(){  
	return   formato.format(valore); // non va modificato
    }

 


/** Somma al prezzo che esegue il metodo il prezzo passato come argomento
*  e restituisce il risultato.
*
*/


   public Prezzo piu(Prezzo p){
       return null;
    }




 /** Sottrae al prezzo che esegue il metodo il prezzo passato come argomento
 *   e restituisce il risultato.
 *
 */  



public Prezzo meno(Prezzo p) {
    return  null;
}


 /**  Moltiplica il prezzo che esegue il metodo per il valore passato come argomento
 *    e restituisce il risultato. 
 *
 */


   public Prezzo per(double d){
       return null;
    }



 /**  Restituisce true se il prezzo che esegue il metodo &egrave; maggiore del prezzo
 *    passato come argomento, false altrimenti.
 *
 */


   public boolean maggioreDi(Prezzo p){
       return  false;
    }






}// end class
