package BestOf;

/**
 * classe PointPondere
 *
 * Spécialise la figure 2D point en ajoutant un poids
 *
 * @author Matthias Colin
 * @version 1.0 (17/03/2009)
 */
public class PointPondere extends Point {

	// champs 
	
	private double poids; // le poids du Point

	// constructeur(s)
	
	/**
	 * constructeur PointPondere à partir des ses coordonnées entières, de son
	 * nom et de son poids
	 */
	public PointPondere(String nomInit, int abscisseInit, 
			int ordonneeInit, double poidsInit)
	{
		// appel du constructeur de la classe mère : Point
		super(nomInit, abscisseInit, ordonneeInit);
		// initialisation du poids
		this.poids = poidsInit;
	}

	// accesseurs
	
	/**
	 * obtenir le poids du point
	 * @return le poids
	 */
	public double getPoids() {
		return this.poids;
	}

	/**
	 * modifier le poids du point
	 * @param nouveauPoids
	 */
	public void setPoids(double nouveauPoids) {
		this.poids = nouveauPoids;
	}

	// autres méthodes
	
	/**
 	* Réprésentation sous forme de chaîne de caractères du PointPondéré
 	* à partir de la représentation en tant que Point : {point ; poids}
 	*/
	@Override
	public String toString() {
		return "{" + super.toString() + " ; " + this.getPoids() + "}";
	}

	/**
 	 * Egalité du PointPondere avec un autre
	 * @return true si les points ont les mêmes propriétés (nom, coordonnées et poids)
 	 */
	@Override
	public boolean equals(Object autreObjet) {
		if (autreObjet == null) {
			return false;
		}
		if (!(autreObjet instanceof PointPondere)) {
			return false;
		}
		PointPondere autrePointPondere = (PointPondere) autreObjet;
		return super.equals(autrePointPondere)
			&& (this.getPoids() == autrePointPondere.getPoids());
	}
}
