Cours de Programmation 1



TD2 : points et cercles

Classe Point

On considère la classe Point définie par le code suivant :

public class Point {
  int x;
  int y;

  Point(int x, int y) {
    this.x = x;
    this.y = y;
  }

  double distanceTo(Point p){
    int deltaX = x - p.x;
    int deltaY = y - p.y;
    return Math.sqrt(deltaX * deltaX + deltaY * deltaY);
  }
}

Question 1 Quels sont les attributs définis au sein de cette classe ? À quelles lignes sont-ils déclarés ?

Question 2 Quelle est la valeur affichée par le code suivant ?

Point point = new Point(3, 4);
System.out.println(point.y);

Question 3 À quelles lignes est défini le constructeur de la classe ? Combien a-t-il de paramètres ?

Question 4 Quelle est la valeur affichée par le code suivant sachant que la Math.sqrt(double a) renvoie la racine carrée (squareroot) de a ?

Point origin = new Point(0, 0);
Point point = new Point(3, 4);
System.out.println(point.distanceTo(origin));

Question 5 À quoi sert selon vous la méthode distanceTo ?

On souhaite maintenant définir une classe Circle représentant un cercle dans le plan. Un cercle (circle) sera défini par un centre (center) et un rayon (radius).

Question 6 Selon vous, quels pourraient être les attributs de la classe Circle ? Quels seraient leurs types ?

On souhaite que la classe Circle définisse les éléments suivants :

  • un constructeur qui a deux arguments radius et center et qui initialise les attributs du cercle avec ces arguments
  • getRadius qui n’a pas d’argument et retourne le rayon du cercle
  • getCenter qui n’a pas d’argument et retourne le centre du cercle
  • contains qui a un argument point et retourne true si point est à l’intérieur du cercle et false sinon

Question 7 Donner le code du constructeur et des trois méthodes getRadius, getCenter et contains de la classe Circle.

On souhaite maintenant définir un cercle avec deux points : un correspondant au centre (center) et un autre correspondant à un point sur le cercle (onTheCircle)

On souhaite que la classe Circle2 définisse les éléments suivants :

  • un constructeur qui a deux arguments onTheCircle et center et qui initialise les attributs du cercle avec ces arguments
  • getRadius qui n’a pas d’argument et retourne le rayon du cercle
  • getCenter qui n’a pas d’argument et retourne le centre du cercle
  • contains qui a un argument point et retourne true si point est à l’intérieur du cercle et false sinon

Question 8 Donner le code du constructeur et des trois méthodes getRadius, getCenter et contains de la classe Circle2.