Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

Java - Constructeurs

Java - constructeur, une méthode particulière Encyclopédie


Le constructeur: une méthode particulière

Pour instancier une classe, c'est-à-dire créer un objet à partir d'une classe, il s'agit d'utiliser l'opérateur new.
En réalité l'opérateur new, lorsqu'il est utilisé, fait appel à une méthode spéciale de la classe: le constructeur.

Le rôle du constructeur est de déclarer et de permettre d'initialiser les données membres de la classe, ainsi que de permettre différentes actions (définies par le concepteur de la classe) lors de l'instanciation.

Un constructeur se définit comme une méthode standard, mais ne renvoie aucune valeur.
Ainsi, le constructeur d'un objet porte le même nom que la classe et ne possède aucune valeur de retour (même pas void).

  • un constructeur porte le même nom que la classe dans laquelle il est défini
  • un constructeur n'a pas de type de retour (même pas void)
  • un constructeur peut avoir des arguments
  • la définition d'un constructeur n'est pas obligatoire lorsqu'il n'est pas nécessaire

La définition de cette fonction membre spéciale n'est pas obligatoire (si vous ne souhaitez pas initialiser les données membres par exemple) dans la mesure où un constructeur par défaut (appelé parfois constructeur sans argument) est défini par le compilateur Java si la classe n'en possède pas.

Voyons sur un exemple comment se déclare un constructeur :

class Toto{
int age;

char sexe;

float taille;

Toto(int age, char sexe, float taille){
	this.age = age;

	this.sexe = sexe;

	this.taille = taille;

  }
}

Définir plusieurs constructeurs

Comme pour n'importe quelle méthode, il est possible de surcharger les constructeurs, c'est-à-dire définir plusieurs constructeurs avec un nombre/type d'arguments différents. Ainsi, il sera possible d'initialiser différemment un même objet, selon la méthode de construction utilisée.

Imaginons par exemple que pour l'exemple précédent on veuille pouvoir définir le sexe de Toto grâce à un entier valant 0 ou 1, ainsi qu'avoir la possibilité de passer en paramètre la lettre 'M' ou 'F', on peut alors définir deux constructeurs pour lesquels le type du second argument sera différent. De plus, on va montrer de quelle manière il est possible de contrôler le caractère entré en paramètre :

class Toto{
int age;

char sexe;

float taille;

Toto(int age, char sexe, float taille){
	this.age = age;

	if ((sexe=='M')||(sexe=='F')) {
	this.sexe = sexe;

	}
	else System.out.println("Erreur d'initialisation");

	this.taille = taille;

}

Toto(int age, int sexe, float taille){
	this.age = age;

	switch (sexe) {
		case 0 :
			this.sexe = 'F';

			break;

		case 1:	
			this.sexe = 'M';

			break;

		default :
			System.out.println("Erreur d'initialisation");

			break;

		}
	this.taille = taille;

}

}

Trucs & astuces pertinents trouvés dans la base de connaissances

18/12 20h18 Installation firefox 2.0+java+flash (Logiciel libre)
18/11 00h43 JavaScript c'est la même chose que Java (Mythes et légendes)
07/10 21h20 2 bons livres pour Java et C++ (Langages)
03/10 15h46 Créer une applet qui accède au disque dur (Programmation)
04/09 10h44 plugin Java Jre de Sun (Mozilla Firefox)
15/05 20h49 Gestion des plug-ins (Navigateurs)
30/12 22h10 Java Runtime Machine (Navigateurs)
constructeurs java Plus d'astuces sur « constructeurs java »

Discussions pertinentes trouvées dans le forum

31/03 22h52 java constructeur variable JAVA - Constructeur variable??? Développement 06/04 07h51->choubaka8
03/12 08h41 invoquer constructeur paramètres java invoquer constructeur avec paramètres en Java Développement 03/12 09h11->yohannmartineau2
21/04 21h52 java constructeur [Java]Constructeur Développement 22/04 02h45->mamiemando1
07/12 13h30 appeler constructeur java liste objets appeler constructeur java d'1 liste d'objets Développement 09/12 01h00->jcodeunpeu3
16/12 14h48 java probleme java Linux/Unix 16/12 20h24->lami20j190
19/08 13h27 applets java applets java ? Windows 22/04 09h19->sebsauvage47
02/03 16h55 java JAVA ? c'est quoi ? Développement 31/01 12h00->oberion23
12/11 11h24 compiler java comment compiler du java??? Développement 13/02 21h06->decollage23
12/07 09h58 debian java virtual machine [Debian] Probleme Java Virtual Machine Linux/Unix 12/07 17h38->foobar4722
18/11 15h35 java mandriva java avec mandriva Linux/Unix 19/11 12h46->lami20j21
Discussion fermée Problème résolu constructeurs java Plus de discussions sur « constructeurs java »

Ce document intitulé « Java - Constructeurs » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.