Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager

La création d'objets

Un objet est une instance de classe, la création d'objets s'appelle donc l'instanciation. Cette instanciation se fait grâce à l'opérateur new suivi du nom de la classe à instancier et de parenthèses contenant les paramètres d'instanciation (parenthèses vides s'il n'y a pas de paramètres). Soit la classe Personne suivante :

class Personne{
	int age;

}
L'instanciation de cette classe (rudimentaire et actuellement inutile...) se fait de la façon suivante :

new Personne();

Les références (handles)

Dans l'état actuel des choses (la simple création d'un objet avec le mot clé new), l'objet nouvellement créé est tout simplement inutilisable, car une fois que l'on a créé l'objet il n'y a aucune façon de le désigner (Personne représente le nom de la classe et non celui d'une de ces instanciations).

Il est heureusement possible d'identifier chaque objet par un nom grâce à un élément appelé référence (en anglais handle, littéralement poignée). On ne peut toutefois pas dire qu'un handle soit le nom d'un objet, étant donné qu'un objet peut posséder plusieurs handles (un handle ne peut par contre désigner qu'un seul objet). Le concept des handles est très proche de celui des pointeurs en langage C/C++, il est toutefois beaucoup plus simple à comprendre et à mettre en oeuvre.

Pour créer une référence d'objet il suffit de faire précéder le nom que l'on donne à un objet par le nom de la classe que l'on instancie, par exemple une référence de l'objet Toto, instance de la classe Personne, peut être défini de la manière suivante :

Personne Toto;
La référence Toto ne pointe pour l'instant vers aucun objet. Pour ce faire, il suffit de l'initialiser, c'est-à-dire en réalité de lui affecter le résultat de la création de l'objet renvoyé par l'opérateur new. Avec l'exemple précédent cela pourrait s'écrire de la façon suivante :

Personne Toto;

Toto = new Personne();

L'affectation de l'opérateur new à la référence ne signifie en aucun cas que l'on stocke l'objet dans la référence, cela indique que la référence pointe vers l'objet nouvellement créé!

Les deux lignes précédentes peuvent être regroupées en un seul de la façon suivante :

Personne Toto = new Personne();

Accéder aux données membres d'un objet

L'accès aux données membres d'un objet se fait grâce au nom de la référence vers l'objet, suivi d'un point puis du nom de la donnée membre. Par exemple :

Nom_du_handle.Nom_de_la_donnee_membre = Valeur;
Si jamais la donnée membre est une référence vers un autre objet, on peut accéder à ses données membres par l'intermédiaire de l'objet en cours :
Nom_du_handle.Nom_donnee_membre_objet.Nom_donnee_membre_de_l_autre_objet = Valeur;

Accéder aux méthodes d'un objet

L'accès aux méthodes d'un objet se fait comme pour l'accès aux données membres, c'est-à-dire par un point. La méthode est suivie de parenthèses, contenant les paramètres, si il y'en a. L'accès à une fonction membre se fait donc de la façon suivante :

Nom_du_handle.Nom_donnee_fonction_membre(parametre1,parametre2,...);

Le mot clé this

Le mot clé this permet de désigner l'objet dans lequel on se trouve, c'est-à-dire que lorsque l'on désire faire référence dans une fonction membre à l'objet dans lequel elle se trouve, on utilise this.

L'objet courant this est en réalité une variable système qui permet de désigner l'objet courant. Cette variable est passée en tant que paramètre caché de chaque fonction membre.

Ainsi, lorsque l'on désire accéder à une donnée membre d'un objet à partir d'une fonction membre du même objet, il suffit de faire précéder le nom de la donnée membre par this.. Par exemple :

class Toto{
	int age;

	char sexe[16];

	void DefineTotoAge(int age){
		this.age = age;

	}
}
En réalité, lorsque l'on donne des noms différents aux données membres et aux variables utilisées dans les fonctions membres, la variable this est implicite, cela signifie que l'on est pas obligé de mettre this. devant chaque donnée membre.

Dans le cas ou l'on désire une fonction membre qui retourne un pointeur vers l'objet dans lequel elle se trouve, la variable this est indispensable :

class Toto{
	int age;

	char sexe[16];

	void DefineTotoAge(int age){
		this.age = age;

	}
	

	Toto * RetourneToto(){
	return this;

}

}


Dernière modification le mardi 14 octobre 2008 à 17:40:31.Ce document intitulé « Java - Les objets » issu de 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.
[java]objet resultset d'une requête SQL Bonjour à tous!!!! Je développe actuellement une application en java. J'execute une requête de select toute bête et le problème, c'est que je voudrais executer une instruction dans le cas ou l'objet resultset est vide. Je ne sais pas du tout comment... www.commentcamarche.net/forum/affich-1692140-java-objet-resultset-d-une-requete-sql
Programmation java objet! Bonjour, Je suis étudiant à l'université en L1. Notre professeur de l'informatique(java) nous a donné un projet à faire "Plongée sous marine"! je vous demande si quelqu'un a déjà fait ce projet en programmation objet java pour qu'il me l'envoie ou je... www.commentcamarche.net/forum/affich-11732212-programmation-java-objet
[business objects] - création objets perso Bonjour Pour la création d'objets personnels, et plus particulièrement écriture de la formule, comment fait-on pour ajouter des fonctions à ceux existants (ex. Ajout mois à une date) merci d'avance pour vos réponses www.commentcamarche.net/forum/affich-2147044-business-objects-creation-objets-perso
[Firefox] plugin Java Jre de SunA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes... www.commentcamarche.net/faq/sujet-1824-firefox-plugin-java-jre-de-sun
Installer Java sous UbuntuPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ... www.commentcamarche.net/faq/sujet-5400-installer-java-sous-ubuntu
VBA et les collections d'objets.VBA et les collections d'objets Quand plusieurs (beaucoup de) contrôles sont mis sur une feuille ou un Userform il est parfois fastidieux d'écrire du code dans chaque évènement des contrôles. Ce Tuto vous permet de traiter vos contrôles comme... www.commentcamarche.net/faq/sujet-10397-vba-et-les-collections-d-objets
Exercices corrigés en java orienté objet (Résolu)Bonjour à tous; je suis débutante en java orienté objet et je cherche des exercices corrigés, alors si quelqu'un peut m'aider d'en avoir je serai très reconnaissante; merci d'avance à tous qui vont m'aider www.commentcamarche.net/forum/affich-9071226-exercices-corriges-en-java-oriente-objet
Appeler constructeur java d'1 liste d'objetsBonjour @ tous, je cherche à pouvoir utiliser un constructeur en java d'une liste d'objets d'une classe que j'ai définie préalablement (une classe pouvant contenir 2 données membres de type String). Voici la création de ma liste (composée d'objets de... www.commentcamarche.net/forum/affich-1963978-appeler-constructeur-java-d-1-liste-d-objets
Taille des objets java en mémoireBonjour, Je fais une étude comparative entre le Java et la librairie Javolution. Je cherche à comparer l'espace mémoire pris par une String, un StringBuffer et un Text (javolution). Comment peut-on faire pour mesurer la taille d'un objet en mémoire? Merci www.commentcamarche.net/forum/affich-4360079-taille-des-objets-java-en-memoire
Télécharger Java Runtime EnvironmentJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces... www.commentcamarche.net/telecharger/telecharger-34055318-java-runtime-environment
Télécharger Cavaj Java DecompilerCavaj Java Decompiler est un éditeur gratuit de code Java. Il permet de recomposer le code source Java d'un fichier CLASS. Il prend en charge la décompilation des applets Java, des archives ZIP et JAR. Le code source Java obtenu est précis. Il intègre... www.commentcamarche.net/telecharger/telecharger-34056787-cavaj-java-decompiler
Télécharger Java ToolsJava Tools est un IDE très léger pour la création, la compilation, l'exécution et le débogage des applications Java et des applettes. L'outil inclus des points et des clics d'accès aux commandes Java, aux documents, au répertoire et aux fichiers. Il... www.commentcamarche.net/telecharger/telecharger-34056297-java-tools
Les classes JavaLa notion d'objet Le langage Java intègre fortement le concept objet, il s'agit donc d'un langage orienté objet (LOO). Le terme langage orienté objet est plus qu'une simple appellation de plus pour désigner un type de langage, il... www.commentcamarche.net/contents/java/javaclass.php3
Javascript - L'objet StringLes particularités de l'objet String string est un mot anglais qui signifie "chaîne", il s'agit en fait de chaîne de caractères. L'objet String est un objet qui contient un certain nombre de propriétés et de méthodes permettant la manipulation... www.commentcamarche.net/contents/javascript/jsstring.php3
Javascript - L'objet windowLes particularités de l'objet window L'objet window est l'objet par excellence dans Javascript, car il est le parent de chaque objet qui compose la page web, il contient donc : l'objet document: la page en elle-même l'objet location: le lieu de... www.commentcamarche.net/contents/javascript/jswindow.php3