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

5707pts

Inscrit le: 30 novembre 2011
Messages: 3424

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

8103pts

Inscrit le: 22 octobre 2012
Age: 26
Messages: 5019
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 ?


>> Rejoignez nous sur Star Citizen ! <<
Fond d'écran Cowcotland
Voir le profil de l'utilisateur Envoyer un message privé » Album Photos » Google Map
funkydata @
Métayer
Métayer

2799pts

Inscrit le: 12 septembre 2014
Age: 42
Messages: 1778

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 Est-ce-que quelqu'un se débrouille en java sur le forum ? poca Questions diverses... 15 11 décembre 2019 à 18:07
Pas de nouveau message Test de ma "nouvelle" boucle ^^ Bbert Le poulailler 23 27 juillet 2019 à 11:52
Pas de nouveau message [VENDU] RESIDENT EVIL 2 Clef STEAM Ahariz Ventes 10 23 janvier 2019 à 14:36
Pas de nouveau message Tout le pc bloqué en "lecture seule" l'intégral de K3npachi OsLand 17 16 août 2018 à 04:26
Pas de nouveau message Boîtier et adaptateurs pour M.2 vers Sata 2.5" Shiftedz Divers Hardware 15 28 juin 2018 à 14:23