Formation Informatique,linux,unix,PHP,Flash,réseau,tomcat,sql..
Partenaires de la formation, intervenants ... Nous contacter Nos formations : Internet, logiciels libres, systeme, réseau... formation JAVA, formation J2EE formation openSource, PHP, Mysql,linux, apache formation windows, maintenance PC, programmation visual basic, administration systeme formation UNIX,Linux, administration, apache, securité
conseil et ingenierie

Introduction
Caractéristiques
Java développement KIT
Premier programme
Primitives du langage
Types de données
Les variables
Les opérateurs
Structures conditionnelles
Classes Java
Les classes
Les méthodes
Les objets
Constructeur
L'héritage
Accessibilité
Package
Exceptions
JDBC



 

Page précédentePage suivanteJava : constructeurs

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;

}

}


Page précédentePage suivante

© Copyright 2003 Jean-François Pillou.
Ce document issu de CommentCaMarche.net est soumis à la licence GNU FDL. Vous pouvez copier, modifier des copies de cette page tant que cette note apparaît clairement.

 
 

 


Warning: main() [function.main]: Unable to access ../../menu-bas.php in /www/plb/www.plb.fr/ccm/java/javaconst.php on line 257

Warning: main(../../menu-bas.php) [function.main]: failed to open stream: No such file or directory in /www/plb/www.plb.fr/ccm/java/javaconst.php on line 257

Warning: main() [function.include]: Failed opening '../../menu-bas.php' for inclusion (include_path='.:/usr/share/php:/var/lib/php') in /www/plb/www.plb.fr/ccm/java/javaconst.php on line 257