This !
Résolu
chaa13
-
chaa13 -
chaa13 -
Hey,
J'ai du mal a voir l'intérêt du "this" en java ! Par exemple quand je suis dans ma classe, je peux très bien mettre : "this.accélération" mais si je met juste "accélération" ça marche aussi. Donc j'ai du mal a voir son intérêt. Quelqu'un peut m'éclairer ?
Merci d'avance ^^
J'ai du mal a voir l'intérêt du "this" en java ! Par exemple quand je suis dans ma classe, je peux très bien mettre : "this.accélération" mais si je met juste "accélération" ça marche aussi. Donc j'ai du mal a voir son intérêt. Quelqu'un peut m'éclairer ?
Merci d'avance ^^
A voir également:
- This !
- Hijack this - Télécharger - Antivirus & Antimalwares
- Cannot display this video mode - Forum Ecran
- No compatible source was found for this media - Forum Mozilla Firefox
- This windows build is not supported by this playbook ✓ - Forum Windows 10
- This program cannot be run in dos mode ✓ - Forum Programmation
4 réponses
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
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.
En gros c'est pas indispensable de le mettre ^^
Peut-être que l'exemple bidon n'aide effectivement pas à comprendre, en voici un j'espère plus compréhensible :
Merci pour tout !