Classes Rectangle
et Square
¶
Classe Rectangle
¶
Code
package v2.shapes;
import java.awt.*;
public class Rectangle {
public static final Color defaultDrawColor = Color.BLACK;
private Point topLeft;
private int width;
private int height;
private Color drawColor;
public Rectangle(Point topLeft, int width, int height) {
this(topLeft, width, height, defaultDrawColor);
}
public Rectangle(Point topLeft, int width, int height, Color drawColor) {
this.topLeft = topLeft;
this.width = width;
this.height = height;
this.drawColor = drawColor;
}
public Point getTopLeft() {
return topLeft;
}
public void setTopLeft(Point topLeft) {
this.topLeft = topLeft;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public Color getDrawColor() {
return drawColor;
}
public void setDrawColor(Color drawColor) {
this.drawColor = drawColor;
}
public void draw(Image image) {
new VLine(topLeft, height, drawColor).draw(image);
new HLine(topLeft, width, drawColor).draw(image);
new VLine(new Point(topLeft.getX() + width, topLeft.getY()), height, drawColor).draw(image);
new HLine(new Point(topLeft.getX(), topLeft.getY() + height), width, drawColor).draw(image);
}
}
La classe Rectangle
représente un rectangle et fournit des méthodes pour le dessiner sur une image. Décomposons le
code :
Champs :
topLeft
: Un objetPoint
représentant le coin supérieur gauche du rectangle.width
: Un entier représentant la largeur du rectangle.height
: Un entier représentant la hauteur du rectangle.drawColor
: Un objetColor
représentant la couleur utilisée pour dessiner le rectangle. Par défaut, il est noir (defaultDrawColor
).
Constructeurs :
Rectangle(Point topLeft, int width, int height)
: Ce constructeur prend le coin supérieur gauche, la largeur et la hauteur du rectangle. Il utilise la couleur de dessin par défaut (noir).Rectangle(Point topLeft, int width, int height, Color drawColor)
: Ce constructeur prend le coin supérieur gauche, la largeur, la hauteur et la couleur de dessin du rectangle.
Méthodes :
getTopLeft()
: Renvoie le point du coin supérieur gauche du rectangle.setTopLeft(Point topLeft)
: Définit le point du coin supérieur gauche du rectangle.getWidth()
: Renvoie la largeur du rectangle.setWidth(int width)
: Définit la largeur du rectangle.getHeight()
: Renvoie la hauteur du rectangle.setHeight(int height)
: Définit la hauteur du rectangle.getDrawColor()
: Renvoie la couleur de dessin du rectangle.setDrawColor(Color drawColor)
: Définit la couleur de dessin du rectangle.draw(Image image)
: Cette méthode dessine le rectangle sur l’image donnée. Pour ce faire, elle dessine quatre lignes : deux verticales et deux horizontales, à l’aide des classesVLine
etHLine
(probablement définies ailleurs dans le code). Elle utilise ladrawColor
du rectangle pour les lignes.
En résumé, la classe Rectangle
encapsule les propriétés d’un rectangle et fournit un moyen de le dessiner sur une
image en utilisant ses dimensions et sa couleur définies.
Classe Square
¶
Code
package v2.shapes;
import java.awt.*;
public class Square {
public static final Color defaultDrawColor = Color.BLACK;
private Point topLeft;
private int width;
private Color drawColor;
public Square(Point topLeft, int width) {
this(topLeft, width, defaultDrawColor);
}
public Square(Point topLeft, int width, Color drawColor) {
this.topLeft = topLeft;
this.width = width;
this.drawColor = drawColor;
}
public Point getTopLeft() {
return topLeft;
}
public void setTopLeft(Point topLeft) {
this.topLeft = topLeft;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public Color getDrawColor() {
return drawColor;
}
public void setDrawColor(Color drawColor) {
this.drawColor = drawColor;
}
public void draw(Image image) {
//noinspection SuspiciousNameCombination
new Rectangle(topLeft, width, width, drawColor).draw(image);
}
}
La classe Square
représente un carré. Elle est similaire à la classe Rectangle
, mais avec quelques différences
clés :
Champs :
topLeft
: Un objetPoint
représentant le coin supérieur gauche du carré. Identique àRectangle
.width
: Un entier représentant la largeur du carré. Dans le cas d’un carré, la largeur est également la hauteur.drawColor
: Un objetColor
représentant la couleur utilisée pour dessiner le carré. Par défaut, il est noir (defaultDrawColor
). Identique àRectangle
.
Remarquez l’absence d’un champ height
. Puisqu’un carré a des côtés égaux, seule la width
est nécessaire.
Constructeurs :
Square(Point topLeft, int width)
: Ce constructeur prend le coin supérieur gauche et la largeur du carré. Il utilise la couleur de dessin par défaut (noir).Square(Point topLeft, int width, Color drawColor)
: Ce constructeur prend le coin supérieur gauche, la largeur et la couleur de dessin du carré.
Similaire à Rectangle
, mais sans la hauteur.
Méthodes :
getTopLeft()
,setTopLeft(Point topLeft)
,getWidth()
,setWidth(int width)
,getDrawColor()
, etsetDrawColor(Color drawColor)
: Fonctionnent de la même manière que dansRectangle
.draw(Image image)
: Cette méthode dessine le carré sur l’image donnée. Au lieu de dessiner quatre lignes individuelles, elle utilise la méthodedraw()
de la classeRectangle
en lui passant la largeur pour à la fois la largeur et la hauteur, dessinant ainsi un carré. C’est une différence importante dans l’implémentation.
En résumé, puisqu’un carré est un rectangle avec la contrainte supplémentaire que la hauteur et la largeur sont égales,
Square
et Rectangle
se ressemblent beaucoup. Square
simplifie la représentation d’un carré en utilisant seulement
la largeur et en déléguant le dessin à la classe Rectangle
.
Note
Page rédigée en partie avec l’aide d’un assistant IA, principalement à l’aide de Perplexity AI, avec le LLM Claude 3.5 Sonnet. L’IA a été utilisée pour générer des explications, des exemples et/ou des suggestions de structure. Toutes les informations ont été vérifiées, éditées et complétées par l’auteur.