Sujet TD3
class Shape
{
double x, y;
public Shape()
{
x = 0;
y = 0;
}
public Shape(double x, double y)
{
this.x = x;
this.y = y;
}
public String toString()
{
return "Position : (" + x + "," + y + ")";
}
}
// Circle.java
class Circle extends Shape
{
final static double PI = 3.141592564;
private double radius;
public Circle()
{
super();
radius = 0;
}
public Circle(double x, double y, double r)
{
super(x, y);
radius = r;
}
public String toString()
{
return super.toString() + " Rayon : " + radius;
}
}
public class MainShape
{
public static void main(String[] args)
{
Circle c1, c2;
c1 = new Circle(1, 1, 3);
c2 = new Circle();
System.out.println(c1.toString() + "\n" +
c2.toString());
}
1/2
Université de Sousse Programmation Orientée Objet JAVA
1DNI ISITCOM 2020-2021 Raoudha Ben Djemaa
Ajoutez une variable surface à la classe Circle. Modifiez les méthodes setRadius et
toString en conséquence. Ajoutez les méthodes d'accès à ces champs.
On notera que le fait de protéger les variables par private et de restreindre leur accès a
l'utilisation de méthode permet de maintenir la cohérence d'un état.
Écrivez une méthode c1.isBigger(Circle c2) renvoyant ``vrai'' si le cercle c1 est plus
grand que c2.
Comment écrire une méthode ayant un comportement similaire, mais prenant les deux
cercles en argument ?
Étendez la classe Circle avec une classe Cylinder ajoutant une variable h pour la
hauteur et une méthode volume. On ajoutera les constructeurs adéquats et on surchargera
toString en conséquence.
2/2