EN DIRECT en ligne connexion / inscription
Connexion

Surnom/Pseudo
Mot de Passe :

[ Vous avez perdu votre mot de pass ? | Devenir membre ]

×

Mot clef "this" en java

CowcotLand topic RSS feed Surveiller les réponses de ce sujet
Noxer2000 @
Ouvrier agricole
Ouvrier agricole

430pts

Inscrit le: 17 février 2015
Messages: 85

Navigateur : n.c.

Hors ligne
Message Posté le: 05 août 2015 à 01:35  Lien permanent
Répondre en citant
Salut tout le monde !
Je vous demande, svp, de me faire un exemple d'utilisation concret du mot clef "this" en java car je ne l'ai toujours pas compris :pp

N’hésitez pas a mettre plein de détailles xD

Merci !
Voir le profil de l'utilisateur Envoyer un message privé
garzebuth @
Fermier
Fermier

6291pts

Inscrit le: 30 novembre 2011
Messages: 3667

Navigateur : n.c.

Hors ligne
Message Posté le: 05 août 2015 à 11:09  Lien permanent
Répondre en citant
"this" est, dans les langages orienté objet, un pointeur sur l'objet courant (on trouve aussi self pour le python et peut-être d'autre je ne sais pas). Càd l'objet auquel appartient la méthode qui est en train de s'exécuter. Ca permet d'accéder aux attributs de l'objet en question.

Ca fait un bout de temps que j'ai pas fait de java, donc on va faire du pseudo-code, surtout que la notion n'est pas réservée au java.

Donc:

classe A {

maStr = "";

setStr(nouvStr) {
this->maStr = nouvStr;
}

}

Pour modifier l'attribut "maStr" de la classe A dans la méthode A::SetStr il faut récupérer le pointeur sur l'objet courant "this" et accéder à ses propriétés.

Dans certains langages (comme le c++), le mot clef "this" est implicite. Càd que, dans une méthode de classe on eut accéder aux attributs de celle-ci sans ajouter this-> devant. Le compilateur comprend que l'on essaie d'accéder à un des attributs et ajoute le this lui-même (en gros). On peut toujours utiliser le mot clef, évidemment. Certain développeurs préfèrent le faire systématiquement parce qu'ils trouvent que c'est plus clair, d'autres trouvent que ça alourdit inutilement le code... ca c'est une question de préférence.


Dernière édition par garzebuth le 05 août 2015 à 11:51; édité 1 fois
Voir le profil de l'utilisateur Envoyer un message privé
Taloken @
Céréalier
Céréalier

8229pts

Inscrit le: 22 octobre 2012
Age: 29
Messages: 5091
Localisation: Niort
Navigateur : Firefox

Hors ligne
Message Posté le: 05 août 2015 à 11:42  Lien permanent
Répondre en citant
Déjà, est-ce que tu vois la différence entre Classe et Objet ?


Représentant commercial amateur et bénévole DesignedByGG
Voir le profil de l'utilisateur Envoyer un message privé » Album Photos » Google Map
funkydata @
Métayer
Métayer

3586pts

Inscrit le: 12 septembre 2014
Age: 45
Messages: 2195

Navigateur : n.c.

Hors ligne
Message Posté le: 05 août 2015 à 12:26  Lien permanent
Répondre en citant
Comme a dit garzebuth "this" est implicite dans la plupart des langages. Le compilateur l'ajoute mais tu n'as pas à le taper.

Ceci dit ca peut être utile de le déclarer implicitement. Par exemple, très simplement, pour changer la portée de tes appels :

Code:

Class Human
{
   protected string FirstName;
   protected string LastName;
   
   public Human(string FirstName, string LastName)
   {
      this.FirstName = FirstName;
      this.LastName = LastName;
   }
}


Dans le constructeur, FirstName sans "this" est dans la portée du constructeur donc c'est l'argument mais quand tu déclares implicitement "this" tu changes la portée et donc tu cibles les variables de ta classe.
Voir le profil de l'utilisateur Envoyer un message privé
Noxer2000 @
Ouvrier agricole
Ouvrier agricole

430pts

Inscrit le: 17 février 2015
Messages: 85

Navigateur : n.c.

Hors ligne
Message Posté le: 05 août 2015 à 13:29  Lien permanent
Répondre en citant
merci beaucoup c'est plus clair maintenant Très content
Voir le profil de l'utilisateur Envoyer un message privé
Sauter vers: 
Surveiller les réponses de ce sujet CowcotLand topic RSS feed  

Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sujets similaires

Sujet Auteur Forum Réponses Posté le
Pas de nouveau message JAVA DK 19 Crash M0rPh3u5 Développement 3 18 mars 2023 à 14:38
Pas de nouveau message clef d'activation windows 11 MMK OsLand 7 08 janvier 2023 à 09:45
Pas de nouveau message Don/Vente : supprimer ou non la clef Windows ? Photographe_a_la_Ferme OsLand 3 16 février 2022 à 17:01
Pas de nouveau message Boot une clef usb d'install de Windows...seven... en 2022 xD pytolux OsLand 8 02 février 2022 à 19:56
Pas de nouveau message Est-ce-que quelqu'un se débrouille en java sur le forum ? poca Questions diverses... 15 11 décembre 2019 à 18:07