|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Alain gestionnaire d'exploitation informatique Inscription : décembre 2012 Messages : 4 ![]() |
Bonjour à tous,
quelqu'un pourrait-il m'éclaircir sur les dessous de l'encapsulation. En java ou C#, par exemple on nous indique d'utiliser les mot-clés private, protected ou public pour instaurer un degré de "visibilité" de méthodes ou d'attributs d'un objet. Mais que se passe-t-il alors au niveau de la compilation pour gérer cette encapsulation.? Je me pose la question par comparaison à d'autres langages ou l'encapsulation n'est "pas gérée" car l'accès aux données que l'on aura cachées (utilisation du nommage en préfixe double underscore) reste toujours possible. Se pourrait-il q'un accès aux données encapsulées considérées inaccessibles soit toujours possible dans les autres langages qui intègrent l'encapsulation (comme java, C#) mais que le manque d'informations nous fasse croire que c'est impossible. Question d'un newbie qui garde une petite lanterne au plafond pour l'hiver. Merci pour vos réponses et corrections. Alain. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() |
Déjà, je ne comprends pas ce que tu veux dire par "utilisation du nommage en préfixe double underscore".
Le principe des données private, c'est que le code ne compilera tout simplement pas si tu cherche à y faire référence par leur nom. Alors, tes recours dépendent de la plate-forme et du langage:
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant. "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?" Apparently everyone. -- Raymond Chen. Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen. |
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé Sénior
![]() Inscription : décembre 2007 Messages : 2 545 ![]() |
Pour reprendre ce que dit Médinoc, en dehors du périmètre de la donnée, le compilateur ne sait pas qu'elle existe. Pas de compilation, pas d’exécution. Ce qui permet paradoxalement d'utiliser le même nom de variable dans plusieurs domaines différents. Exemple(pourri) en VBA :
Code :
__________________
Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten : 1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception 2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences 3)le temps de comprendre toutes les exigences, le projet est terminé 4)le temps de terminer le projet, les exigences ont changé Et le serment de non-allégiance : Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée. |
||
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2006 Messages : 5 390 ![]() |
Citation:
__________________
" Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson |
|
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() |
Citation:
Citation:
ReflectionPermissionFlag enumeration
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant. "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?" Apparently everyone. -- Raymond Chen. Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen. |
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Alain gestionnaire d'exploitation informatique Inscription : décembre 2012 Messages : 4 ![]() |
Je n'espérais pas de réponses, donc déjà merci
![]() Elles confirment qu'il ne s'agit, suivant les langages considérés, que d'un degré de protection plus ou moins élevé et abscons (choisi par les concepteurs du langage) des données définies comme privées. Comme j'ai affaire à des experts pourriez-vous me dire qu'elle est votre livre de référence pour la programmation orientée objet. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com