Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
La déclaration avec initialisation d’un objet se fait selon la syntaxe suivante : public Rectangle(double h, double l)
{
Syntaxe : hauteur = h;
largeur = l;
NomClasse instance = new NomClasse(valarg1, ..., valargN); }
où valarg1, ..., valargN sont les valeurs des arguments du constructeur. public double surface()
{ return hauteur * largeur; }
// ...
Exemple : }
Rectangle r1 = new Rectangle(18.0, 5.3); // invocation du constructeur à 2 paramètres
class Exemple {
public static void main(String[] args) {
Rectangle rect1 = new Rectangle(3.0, 4.0);
// ...
}
}
Constructeur par défaut Constructeur par défaut par défaut
// 3ème constructeur
Si donc on spécifie un constructeur sans spécifier de constructeur par défaut,
Rectangle(double h, double l) { hauteur = h; largeur = l; } on ne peut plus construire d’objet de cette classe sans les initialiser explicitement
(ce qui est voulu !) puisqu’il n’y a plus de constructeur par défaut.
class Rectangle {
Constructeur par défaut : exemples
private double hauteur;
private double largeur; constructeur par défaut Rectangle r1 = Rectangle r2 =
// suite ...
new Rectangle(); new Rectangle(1.0,2.0);
}
A: constructeur par défaut
(A) 0.0 0.0 Illicite !
par défaut
class Rectangle {
class Rectangle { private double hauteur;
private double hauteur; private double largeur;
private double largeur;
public Rectangle(double h,
public Rectangle() double l)
{ {
hauteur = 0.0; hauteur = h; class Rectangle {
largeur = 0.0; largeur = l; }
} }
// suite ... // suite ...
} }
B: C:
Constructeur par défaut : exemples Constructeur par défaut : exemples
constructeur par défaut Rectangle r1 = Rectangle r2 = constructeur par défaut Rectangle r1 = Rectangle r2 =
new Rectangle(); new Rectangle(1.0,2.0); new Rectangle(); new Rectangle(1.0,2.0);
constructeur par défaut constructeur par défaut
(A) 0.0 0.0 Illicite ! (A) 0.0 0.0 Illicite !
par défaut par défaut
constructeur par défaut constructeur par défaut
(B) 0.0 0.0 Illicite ! (B) 0.0 0.0 Illicite !
explicitement déclaré explicitement déclaré
pas de constructeur par
(C) Illicite ! 1.0 2.0
défaut
class Rectangle {
public Rectangle() class Rectangle {
{ public Rectangle(double h, double l)
hauteur = 0.0; {
largeur = 0.0; hauteur = h;
} largeur = l;
} }
}
I Le constructeur de copie n’est pas la seule façon de créer une copie d’objet.
Le moyen le plus usuel est d’avoir recours à la méthode clone() que nous
verrons un peu plus tard.
Java prévoit que vous puissiez définir cette méthode, par exemple avec l’entête
suivant : boolean equals(Rectangle arg)
Comparaison d’objets : méthode equals Comparaison d’objets : méthode equals (2)
Exemple :
class Rectangle Exemple (suite) :
{
private double hauteur; //.. par exemple dans la méthode main()
private double largeur;
//... Rectangle r1 = new Rectangle(4.0, 5.0);
public boolean equals(Rectangle autre) Rectangle r2 = new Rectangle(4.0, 5.0);
{
if (autre == null) { if (r1.equals(r2)) {
return false; System.out.println("Rectangles identiques");
} else { }
return ( hauteur == autre.hauteur
&& largeur == autre.largeur);
}
}