Programmation Objet Java

nicotoy3 -  
UaLShark Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir à tous !

J'ai besoin de votre aide concernant la programmation objet en Java...

Voilà un exemple illustrant ma question :


class Voiture {

//Attributs
private String marque ;
private int annee ;
private String couleur ;

//Constructeurs
Voiture() {
marque="Peugeot" ;
annee=1996 ;
couleur="rouge" ;
}

VoitureBis() {
this.marque="Peugeot" ;
this.annee=1996 ;
this.couleur="rouge" ;
}


Quelle est la différence entre les deux constructeurs ???
Pourquoi inclure un "this" dans les constructeurs et méthodes de la classe ????

Par avance, merci de vos réponses.

Nicotoy3
A voir également:

3 réponses

UaLShark Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   35
 
il n'y a aucune différence !
Voiture() {
marque="Peugeot" ;
annee=1996 ;
couleur="rouge" ;
} // this est implicite ici
VoitureBis() {
this.marque="Peugeot" ;
this.annee=1996 ;
this.couleur="rouge" ;
} //this est explicite

d'une façon générale tu peux le omettre 'this' sauf dans un cas tres précis qui est

dans un cas d'héritage, un attribut avec le meme nom existe dans une des classe meres
pour modifier l'attribut de la classe mere tu agis avec super
pour modifier l'attribut de la classe en cours utiliser this(ou tu peux le omettre mais pour des raisons de visibilité il est conseille du'tiliser ce mot clef)
0
tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   122
 
Salut,

Le deuxième constructeur doit vous générer une erreur pendant la compilation de genre "Ereur dans la déclaration d'une méthode: type de retour non défini".

Le construteur doit porter le même nom de la classe sinon il sera concédéré comme une méthode.
-1
UaLShark Messages postés 191 Date d'inscription   Statut Membre Dernière intervention   35
 
re tarek_dotzero ça va de soit que le constructeur a le meme non que la classe et sans type de retour!
je crois que nicotoy3 veut savoir à quoi sert le this!
bein sinon un constructeur doit
1- avoir le nom de la classe
2- sans type de retour
3- les règles de surcharges s'appliquent sur le constructeur
pas de
voiture()
{
marque = "machin";
}
voiture()
{ num =99999;
}
-1