Accès à la classe mère Java
Fermé
Olal
Messages postés
7
Date d'inscription
mercredi 8 août 2012
Statut
Membre
Dernière intervention
23 août 2012
-
8 août 2012 à 22:11
Olal Messages postés 7 Date d'inscription mercredi 8 août 2012 Statut Membre Dernière intervention 23 août 2012 - 9 août 2012 à 21:35
Olal Messages postés 7 Date d'inscription mercredi 8 août 2012 Statut Membre Dernière intervention 23 août 2012 - 9 août 2012 à 21:35
A voir également:
- Accès à la classe mère Java
- Jeux java itel ✓ - Forum Jeux vidéo
- Java runtime - Télécharger - Langages
- Retour à la ligne java ✓ - Forum Java
- A java exception has occurred ✓ - Forum minecraft
- Le chemin d'accès spécifié est introuvable ✓ - Forum Téléchargement
3 réponses
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
9 août 2012 à 10:04
9 août 2012 à 10:04
Il faut bien distinguer : modifier la valeur, et modifier la variable.
Les setters sont fait, par définition, pour modifier la valeur de manière cohérente, tout en empêchant un accès direct à la variable, car sinon on pourrait faire n'importe quoi.
Mais ce qu'il faut bien comprendre, c'est que quand tu es dans la classe fille, tu n'as pas à connaître la structure interne de la classe mère, tu n'as pas à savoir quelles sont les variables privées que tu dois modifier. Pour modifier l'état d'un objet tu dois agir sur ses méthodes, pas sur sa structure (sinon ce ne serait plus du Java mais du C)
Les setters sont fait, par définition, pour modifier la valeur de manière cohérente, tout en empêchant un accès direct à la variable, car sinon on pourrait faire n'importe quoi.
Mais ce qu'il faut bien comprendre, c'est que quand tu es dans la classe fille, tu n'as pas à connaître la structure interne de la classe mère, tu n'as pas à savoir quelles sont les variables privées que tu dois modifier. Pour modifier l'état d'un objet tu dois agir sur ses méthodes, pas sur sa structure (sinon ce ne serait plus du Java mais du C)
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
8 août 2012 à 22:20
8 août 2012 à 22:20
Le but de l'encapsulation est d'interdire l'accès à ces variables, et c'est pour ça que l'on construit les getter pour lire les valeurs et les setter pour les modifier, mais on ne touche pas aux variables.
Olal
Messages postés
7
Date d'inscription
mercredi 8 août 2012
Statut
Membre
Dernière intervention
23 août 2012
8 août 2012 à 23:12
8 août 2012 à 23:12
Ok merci. Avec le setter on touche bien indirectement à la variable non ?
Donc au final il est tout à fait possible depuis la classe fille de passer par les getters ou setters de la classe mère pour modifier ses valeurs (si on a pas la possibilité d'atteindre les variables autrement (avec protected entre autres)) non ?
Merci.
Donc au final il est tout à fait possible depuis la classe fille de passer par les getters ou setters de la classe mère pour modifier ses valeurs (si on a pas la possibilité d'atteindre les variables autrement (avec protected entre autres)) non ?
Merci.
9 août 2012 à 14:57
9 août 2012 à 15:04
En modifiant la valeur de la variable, on peut être amené à lui donner la référence d'un objet totalement différent, en particulier lorsque l'on manipule des objets immuables (les String par exemple).
Mais tout ceci est "transparent" puisque c'est encapsulé dans les getteurs/setteurs qui garantissent la cohérence des données (en tout cas, c'est leur rôle).
9 août 2012 à 21:35