OVH Cloud OVH Cloud

Self Learning - Constructeurs en Java

2 réponses
Avatar
Latyr_Dev
Bonjour

En C++ dans un constructeur on peut sp=E9cifier des valeurs par d=E9faut=20
pour les variables.=20
Cela me semble impossible me tromperais je ?

Merci d'avance


CODE A OK
=09public Rectangle() {
=09=09this.origine =3D new Point(0,0) ;
=09=09this.largeur =3D 10 ;
=09=09this.longueur =3D 30 ;=09=09
=09}
=09
=09public Rectangle(Point origine) {
=09=09this.origine =3D origine ;
=09=09this.largeur =3D 10 ;
=09=09this.longueur =3D 30 ;=09=09
=09}

=09public Rectangle(int longueur, int largeur) {
=09=09this.origine =3D new Point (0,0) ;
=09=09this.largeur =3D largeur ;
=09=09this.longueur =3D longueur ;=09=09
=09}
=09



/****** *******/

CODE B NOT OK
=09public Rectangle(int longueur=3D0, int largeur=3D0 ) {
=09=09this.origine =3D new Point (0,0) ;
=09=09this.largeur =3D largeur ;
=09=09this.longueur =3D longueur ;=09=09
=09}
=09
// Je veux qu'en l'absence de parametres, les valeurs=20
// par d=E9faut soient utilis=E9es.
//

/****** *******/

2 réponses

Avatar
Unknown
CODE B NOT OK
public Rectangle(int longueur=0, int largeur=0 ) {
this.origine = new Point (0,0) ;
this.largeur = largeur ;
this.longueur = longueur ;
}



tu fais :
public class Rectangle {
private Point origine = new Point(0,0);
private int largeur = 0;
private int longueur = 0;

public Rectangle() {
// rien ici comme ca on prend le défaut
}

public Rectangle(int largeur,int longueur) {
this.largeur = largeur;
this.longueur = longueur;
}
}

Avatar
cfranco
Unknown wrote:

CODE B NOT OK
public Rectangle(int longueur=0, int largeur=0 ) {
this.origine = new Point (0,0) ;
this.largeur = largeur ;
this.longueur = longueur ;
}



tu fais :
public class Rectangle {
private Point origine = new Point(0,0);
private int largeur = 0;
private int longueur = 0;

public Rectangle() {
// rien ici comme ca on prend le défaut
}

public Rectangle(int largeur,int longueur) {
this.largeur = largeur;
this.longueur = longueur;
}
}


Ou même encore si tu veux que ça soit encore plus clair pour le lecteur
:

public Rectangle() {
this(O,O);
}

public Rectangle(int largeur,int longueur) {
this.largeur = largeur;
this.longueur = longueur;
}



--
Christophe Franco