OVH Cloud OVH Cloud

[Debutante] Appel d'une méthode private par l'intermédiaire d'une méthode public

5 réponses
Avatar
Lea
Bonjour,

J'ai une classe qui contient une méthode public et une méthode private.
Pourquoi est-il possible d'accéder aux valeurs des données de la méthode
private en l'appelant à partir d'une méthode public ?

Ex :
public void ajouter(){
this.deplacer();
}

private void deplacer(){
instructions;
}

Merci. Léa

5 réponses

Avatar
Laurent Bossavit
Léa,

Pourquoi est-il possible d'accéder aux valeurs des données de la méthode
private en l'appelant à partir d'une méthode public ?


Pourquoi es-tu surprise que cela soit possible ?

Laurent

Avatar
Lea
Léa,


Pourquoi est-il possible d'accéder aux valeurs des données de la méthode
private en l'appelant à partir d'une méthode public ?



Pourquoi es-tu surprise que cela soit possible ?

Laurent


Si j'essaie d'exécuter la méthode private à partir d'une classe externe
située dans le même répertoire, je n'ai pas accès à ses données. Par
contre en passant par une méthode public appelant la méthode private,
c'est possible.
Quelque chose m'échappe ...

Merci


Avatar
no.bcausse.spam
Lea wrote:

Si j'essaie d'exécuter la méthode private à partir d'une classe externe
située dans le même répertoire, je n'ai pas accès à ses données. Par
contre en passant par une méthode public appelant la méthode private,
c'est possible.
Quelque chose m'échappe ...


si un inconnu (externe) te demande un aspirine, il n'ira pas le chercher
seul dans ta pharmarcie (private), mais tu le fera pour lui (public)
voila le principe
--
bruno Causse
http://perso.wanadoo.fr/othello

Avatar
David Molinier

Léa,


Pourquoi est-il possible d'accéder aux valeurs des données de la
méthode private en l'appelant à partir d'une méthode public ?




Pourquoi es-tu surprise que cela soit possible ?

Laurent



Si j'essaie d'exécuter la méthode private à partir d'une classe externe
située dans le même répertoire, je n'ai pas accès à ses données. Par
contre en passant par une méthode public appelant la méthode private,
c'est possible.
Quelque chose m'échappe ...


C'est ce qu'on appelle l'encapsulation des données : tu ne souhaites pas
que n'importe qui manipule directement la représentation interne de ton
objet (attributs private), mais tu autorises à accéder au contenu, selon
une méthode que tu fournis (publique).

Ca te permet, demain, de changer la représentation interne de ton objet,
et d'adapter ta méthode publique afin qu'elle rende toujours le même
service aux objets "externes" comme tu les décris.

--
David Molinier <*>



Avatar
Lea
"David Molinier" a écrit dans le message de news:
421e5543$0$1253$

Léa,


Pourquoi est-il possible d'accéder aux valeurs des données de la
méthode private en l'appelant à partir d'une méthode public ?




Pourquoi es-tu surprise que cela soit possible ?

Laurent



Si j'essaie d'exécuter la méthode private à partir d'une classe externe
située dans le même répertoire, je n'ai pas accès à ses données. Par
contre en passant par une méthode public appelant la méthode private,
c'est possible.
Quelque chose m'échappe ...


C'est ce qu'on appelle l'encapsulation des données : tu ne souhaites pas
que n'importe qui manipule directement la représentation interne de ton
objet (attributs private), mais tu autorises à accéder au contenu, selon
une méthode que tu fournis (publique).

Ca te permet, demain, de changer la représentation interne de ton objet,
et d'adapter ta méthode publique afin qu'elle rende toujours le même
service aux objets "externes" comme tu les décris.

--
David Molinier <*>


Merci bcp.
Léa