23 Jan2016
La classe Point
Objectif :
- Concepts de la programmation objet.
- Manipulation des méthodes de classe.
- Implémentation appropriée du principe de protection des données (encapsulation).
Travail à faire :
Fournissez la classe Point permettant de représenter des points dans un espace cartésien et conçue de manière à ce que le programme suivant fonctionne correctement:
public class TestPoint { public static void main(String[] argv) { Point p1 = new Point(1.0, 3.0); // Création du point de coordonnées x=1 // et y=3 Point p2 = new Point(5.0, 6.0); // Création du point de coordonnées x=5 // et y=6 Point p3 = p1.translation(2.0, 1.5); // retourne le point résultant de // la translation // (2,1.5) appliquée sur p1 double d = Point.distance(p1, p2); // calcule la distance entre p1 et p2 System.out.println("p1 = " + p1); // Affiche : "p1 = ( 1.0 , 3.0 )" System.out.println("p2 = " + p2); // Affiche : "p2 = ( 5.0 , 6.0 )" System.out.println("p3 = " + p3); // Affiche : "p3 = ( 3.0 , 4.5 )" System.out.println("Distance = " + d); // Affiche : "distance = 5.0 " } }
Note
- Si on considère le point (x1,y1), le point résultant de la translation (a,b) est (x1+a, y1+b).
- La distance entre deux points (x1,y1) et (x2,y2) est égale à :
- La classe java.lang.Math contient des méthodes static permettant de calculer la racine carré et la puissance d'un certain nombre, voici la déclaration de ces méthodes : Class Math {
public static double sqrt(double nb) : // retourne la racine carré de nb
public static double pow(double nb, double puissance) : // retourne nbpuissance
…
}
- System.out.println utilise la méthode toString() de l'objet qu'elle a reçu en argument pour afficher celui-ci à l'écran.
public class Point { private double x; private double y; public Point(double x, double y) { this.x = x; this.y = y; } public Point translation(double a, double b) { return new Point(this.x + a, this.y + b); } public static double distance(Point p1, Point p2) { return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)); } public String toString() { return "(" + x + "," + y + ")"; } }