Vous êtes sur la page 1sur 4

Exercice 1 

1. B 7. C 13. B 19. C

2. D 8. B 14. C 20. B

3. A 9. C 15. C 21. C

4. A 10. C 16. B 22. C

5. B 11. C 17. C 23. C

6. D 12. C 18. A 24. B

Exercice 2 :

A. Vrai

B. Faux

Lors de l'exécution du programme, la ligne 11 affiche "2" car `v1` est une variable statique
partagée par toutes les instances de la classe `Truc`. Chaque fois qu'une nouvelle instance de
`Truc` est créée, la valeur de `v1` est incrémentée de 1 dans le constructeur. Ainsi, la première
instance aura `v1` égal à 1, la deuxième instance aura `v1` égal à 2, et ainsi de suite.

La ligne 12 affiche "0" car `v2` est une variable d'instance et chaque instance de `Truc` a sa
propre copie de `v2`. Lorsque le constructeur est appelé pour chaque instance, `v2` est
initialisé à 0, puis incrémenté de 1. Cependant, chaque appel à `new Truc().getV2()` crée une
nouvelle instance de `Truc`, donc chaque appel affiche la valeur initiale de `v2`, qui est 0.

ProBleme :
// Définition de l'interface Triangle

interface Triangle {

String getType();

// Classe abstraite TriangleAbstract

abstract class TriangleAbstract implements Triangle {

abstract boolean isValid(double side1, double side2, double side3);

}
// Classe TriangleScalene

class TriangleScalene extends TriangleAbstract {

@Override

public String getType() {

return "Scalène";

@Override

boolean isValid(double side1, double side2, double side3) {

// Vérifier les conditions de validité d'un triangle scalène

// (par exemple, que les côtés sont tous différents)

// Renvoyer true si les côtés sont valides, sinon false

// Classe TriangleIsosceles

class TriangleIsosceles extends TriangleAbstract {

@Override

public String getType() {

return "Isocèle";

@Override

boolean isValid(double side1, double side2, double side3) {

// Vérifier les conditions de validité d'un triangle isocèle

// (par exemple, que deux côtés sont égaux)

// Renvoyer true si les côtés sont valides, sinon false

}
// Classe TriangleEquilateral

class TriangleEquilateral extends TriangleAbstract {

@Override

public String getType() {

return "Équilatéral";

@Override

boolean isValid(double side1, double side2, double side3) {

// Vérifier les conditions de validité d'un triangle équilatéral

// (par exemple, que tous les côtés sont égaux)

// Renvoyer true si les côtés sont valides, sinon false

// Classe Main

public class Main {

public static void main(String[] args) {

double side1 = 5.0;

double side2 = 5.0;

double side3 = 5.0;

try {

Triangle triangle;

if (side1 == side2 && side2 == side3) {

triangle = new TriangleEquilateral();

} else if (side1 == side2 || side1 == side3 || side2 == side3) {

triangle = new TriangleIsosceles();

} else {

triangle = new TriangleScalene();

}
if (triangle.isValid(side1, side2, side3)) {

String type = triangle.getType();

System.out.println("Le triangle est de type : " + type);

} else {

System.out.println("Les longueurs des côtés ne forment pas un triangle valide.");

} catch (Exception e) {

System.out.println("Une exception s'est produite : " + e.getMessage());

Vous aimerez peut-être aussi