This !
Résolu/Fermé
A voir également:
- This !
- This program cannot be run in dos mode ✓ - Forum Programmation
- This is the mail system at host ✓ - Forum Mail
- This product requires the java language, which is either disabled or not available on this browser. ✓ - Forum Réseau
- Press up to unlock this screen ✓ - Forum Logiciels
- Sorry, something went wrong. we're working on getting this fixed as soon as we can. ✓ - Forum Facebook
4 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié par KX le 27/06/2013 à 16:23
Modifié par KX le 27/06/2013 à 16:23
Effectivement, this est généralemet implicite donc dans bien des cas on ne le mets pas, cependant il est parfois nécessaire d'y avoir accès quand même par exemple comme paramètre d'une méthode :
Autre cas d'utilisation : comme je l'ai dit le this est généralement implicite, mais les paramètres sont prioritaires par rapport aux membres de classes, ce qui nécessite de faire attention lorsque deux variables ont le même nom, on trouve généralement cela dans les constructeur et les setteurs :
Il y a encore d'autres cas d'utilisations, parfois plus tordus, exemple avec des classes imbriquées où le this peut faire référence à l'une ou l'autre des classes de sa hiérarchie, dans ce cas on le précède du nom de la classe (la plus interne est implicite)
public class MaClasse { void uneMethode(MonObjet obj) { ... } } public class MonObjet { void uneAutreMethode() { MaClasse m = new MaClasse(); m.uneMethode(this); } }
Autre cas d'utilisation : comme je l'ai dit le this est généralement implicite, mais les paramètres sont prioritaires par rapport aux membres de classes, ce qui nécessite de faire attention lorsque deux variables ont le même nom, on trouve généralement cela dans les constructeur et les setteurs :
public class MaClasse { private MonObjet obj; // obj_membre public MaClasse(MonObjet obj) // obj_parametre { this.obj = obj; // obj_membre = obj_parametre } }
Il y a encore d'autres cas d'utilisations, parfois plus tordus, exemple avec des classes imbriquées où le this peut faire référence à l'une ou l'autre des classes de sa hiérarchie, dans ce cas on le précède du nom de la classe (la plus interne est implicite)
public class A { int x; class B { int x; void methode() { B.this.x = A.this.x; // Remarque : B.this.x == this.x == x } } }La confiance n'exclut pas le contrôle
Bonjour,
je t'invite à lire ce blog
http://blog.paumard.org/cours/java/chap04-structure-classe-classe.html#d0e2135
Bon courage
Cordialement
je t'invite à lire ce blog
http://blog.paumard.org/cours/java/chap04-structure-classe-classe.html#d0e2135
Bon courage
Cordialement
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
121
27 juin 2013 à 22:12
27 juin 2013 à 22:12
Bonjour,
Il y a plusieurs utilisation de this, je vais citer deux :
1. Pour différencier les attributs de la classe des variables utilisées dans la méthode, par exemple :
2. Pour utiliser l'objet en cours comme paramettre. Par exemple : soit la classe A suivante :
Alors nous avons cette méthode qui nécessite un paramètre de type B, et il se trouve que je peux l'appeler à partir de la classe B elle même :
la méthode creerUnA me permet de créer une instance de la classe A et d'intialiser son champs B par l'objet en cours.
Ceux ci sont deux exemples très simple, pour débutant, vous allez voir par le temps que c'est très important d'avoir ce mot clé.
Bon Courage.
Il y a plusieurs utilisation de this, je vais citer deux :
1. Pour différencier les attributs de la classe des variables utilisées dans la méthode, par exemple :
void setA(int a){ this.a = a; }
2. Pour utiliser l'objet en cours comme paramettre. Par exemple : soit la classe A suivante :
public class A{ private B b; void setB(B unB){ this.b = unB; } }
Alors nous avons cette méthode qui nécessite un paramètre de type B, et il se trouve que je peux l'appeler à partir de la classe B elle même :
public class B{ A creerUnA(){ A a = new A(); a.setB(this); return a; } }
la méthode creerUnA me permet de créer une instance de la classe A et d'intialiser son champs B par l'objet en cours.
Ceux ci sont deux exemples très simple, pour débutant, vous allez voir par le temps que c'est très important d'avoir ce mot clé.
Bon Courage.
27 juin 2013 à 16:25
En gros c'est pas indispensable de le mettre ^^
Modifié par KX le 27/06/2013 à 16:51
Peut-être que l'exemple bidon n'aide effectivement pas à comprendre, en voici un j'espère plus compréhensible :
27 juin 2013 à 17:12
Merci pour tout !