public class Rectangle { /* * Attributs du Rectangle */ int centreX, centreY, longueur, hauteur; String nom; /* * Constructeurs */ public Rectangle(){ centreX = 50; centreY = 50; longueur = 60; hauteur = 40; nom = "Rect"; } public Rectangle(int longueur, int hauteur, String nom){ centreX = 50; centreY = 50; this.longueur = longueur; this.hauteur = hauteur; this.nom = nom; } public Rectangle(int x, int y, int longueur, int hauteur, String nom){ centreX = x; centreY = y; this.longueur = longueur; this.hauteur = hauteur; this.nom = nom; } /* * Méthodes du Rectangle */ int calculerSurface(){ return longueur * hauteur; } int calculerPerimetre(){ return (longueur + hauteur)*2; } void deplacer(int dX, int dY){ centreX += dX; centreY += dY; } int getX0(){ return centreX - longueur/2; } int getX1(){ return centreX + longueur/2; } int getY0(){ return centreY - hauteur/2; } int getY1(){ return centreY + hauteur/2; } boolean contientRectangle(Rectangle r){ return this.getX0()<=r.getX0() && this.getX1()>=r.getX1() && this.getY0()<=r.getY0() && this.getY1()>=r.getY1(); } boolean estContenuDansRectangle(Rectangle r){ return r.contientRectangle(this); } void afficher() { System.out.print("Le rectangle "+nom); System.out.print(" est positionné en ("+centreX+","+centreY+")"); System.out.print(", a une longueur de "+longueur); System.out.println(" et une hauteur de "+hauteur); } public static void main(String[] args) { Rectangle r1 = new Rectangle(4,4,6,4,"R1"); Rectangle r2 = new Rectangle(9,6,4,8,"R2"); Rectangle r3 = new Rectangle(9,7,2,4,"R3"); Rectangle r4 = new Rectangle(2,9,2,2,"R4"); r1.afficher(); r2.afficher(); r3.afficher(); r4.afficher(); System.out.println("R2 contient R3 ? "+r2.contientRectangle(r3)); System.out.println("R2 contenu dans R4 ? "+r2.estContenuDansRectangle(r4)); } }