/** * Rappresenta un punto in coordinate cartesiani *
* Realizza l'interfaccia Coordinate * */ public class CoordinateCartesiane implements Coordinate { public double x; public double y; /** * Crea un oggetto di tipo coordinateCartesiane ed * Inizializza il campo node1 dell'oggetto al valore node1 del parametro, * ed il campo node2 dell'oggetto al valore node2 del parametro * * @param node1 il valore a cui settare il campo node1 dell'oggetto * @param node2 il valore a cui settare il campo node2 dell'oggetto * */ public CoordinateCartesiane(double x, double y) { this.x = x; this.y = y; } /** * Calcola la distanza del punto rappresentato dall'oggetto di invocazione al punto c * * @param c oggetto che rappresenta il punto c, da cui voglio calcolare la distanza * @return ritorna la distanza dal punto c * */ public double dist(CoordinateCartesiane c) { return Math.sqrt(Math.pow((x-c.x),2) + Math.pow((y-c.y),2)); } /** * Calcola la distanza del punto rappresentato dall'oggetto di invocazione * dall'origine degli assi * * @return ritorna la distanza dal punt rappresentato dall'oggetto di invocazione * dall'origine degli assi * */ public double distOrigine() { return Math.sqrt(Math.pow(x,2) + Math.pow(y, 2)); } /** * Costruisce una stringa che contiene le informazioni rilevanti per l'oggetto di invocazione * * @return la stringa che rappresenta le informazioni rilevanti per l'oggetto di invocazione * */ public String toString() { return "<"+x+", "+y+">"; } /** * Confronta le informazioni rilevanti per l'oggetto di invocazione con * l'oggetto passato come parametro. * Ritorna true se tali informazioni sono uguali, false altrimenti * * @param obj l'oggetto con cui voglio verificare l'uguaglianza dell'oggetto di invocazione * @retrun true se obj e' di tipo CoordinateCartesiane e se le informazioni rilevanti per * obj e per l'oggetto di invocazione sono uguali. * */ public boolean equals(Object obj) { if (obj instanceof CoordinateCartesiane) { CoordinateCartesiane cc = (CoordinateCartesiane) obj; return ((x == cc.x) && (y==cc.y)); } return false; } @Override public int hashCode() { Double ox = new Double(x); Double oy = new Double(y); return (ox.hashCode()+oy.hashCode()); } public static void main(String[] args) { CoordinateCartesiane cc = new CoordinateCartesiane(2.0,1.0); String s = new String("test"); System.out.println("cc equals s ? :"+cc.equals(s)); } }