IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Visibilité dans Java


Sujet :

Java

  1. #1
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut Visibilité dans Java
    Bonjour,
    J’aimerais mettre à la disposition de 2 développeurs des classes mais sans qu’ils aient accès au code de ces dernières. Ils peuvent accéder à certains attributs et appeler certaines méthodes y compris le constructeur (selon les visibilités).
    Concrètement, comment pourrait-on réaliser cela sous éclipse par exemple (ou autre IDE) ?
    La définition des interfaces des objets (visibilités des attributs et méthodes) servent-ils uniquement à ce type de cas de figure, ou bien y –a-t il d’autres raisons ?
    Avez-vous des exemples concrets dans lesquels vous justifiez la définition des différentes visibilités, attributs et méthodes ?
    Merci à vous
    L'immortalité existe, elle s'appelle connaissance

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    En programmation, (Java ou autre,) ce n'est pas ça que ça veut dire, "visibilité".

    À tout endroit du code, toute classe, variable ou méthode a une "visibilité" : soit elle est visible, soit elle ne l'est pas. Ce qui signifie simplement "est-ce qu'on a le droit de s'en servir, oui ou non."
    Par exemple tout ce qui est private fait en sorte que seule la classe en cours puisse s'en servir, ce qui veut dire qu'en dehors de cette classe ce ne sera pas visible.

    Mais bien entendu, rendre quelque chose private ne change absolument rien à ce qui s'affiche dans l'IDE ! Le code source est toujours là et bien là, évidemment !
    La "visibilité" des choses n'a aucune influence sur si oui ou non, on peut voir le code. Ça n'a juste aucun rapport. Ce n'est pas ça que ça veut dire.


    Si tu veux distribuer des classes sans leur code source, il suffit de fournir les .class compilés mais pas les .java. La méthode habituelle est de distribuer ces classes sous forme de .jar, pour que les autres développeurs se servent de ce .jar comme de n'importe quel .jar.
    Bien qu'il soit possible d'inclure le code source dans un .jar, ce n'est pas le cas par défaut, et la plupart des .jars du monde ne fournissent pas le code source (les bibliothèques open-source étant fournies sous forme de .jar binaire dont on peut lier le code source obtenu indépendamment dans un .zip).
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut
    Merci Thelvin pour ta réponse.
    Mais ça sert à quoi alors ?
    L'immortalité existe, elle s'appelle connaissance

  4. #4
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut
    La réponse est : L'encapsulation!!
    Voila un passage que j'ai trouvé sur le net :
    Un exemple simple est le cas d'une donnée numérique qui devrait rester positive pour garder sa signification : il est indispensable qu'un utilisateur ne puisse pas, par mégarde ou ignorance, lui attribuer une valeur négative. Pour encapsuler un attribut, il suffit de le déclarer privé, c'est-à-dire de lui attribuer le modificateur de visibilité private. On peut aussi encapsuler des méthodes qui ne servent qu'à un usage interne à la classe.
    L'immortalité existe, elle s'appelle connaissance

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Yup.

    C'est simplement un outil qui sert à mieux organiser son code.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut
    Merci Thelvin.
    L'immortalité existe, elle s'appelle connaissance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSP/Tomcat] Intégration de PHP dans Java
    Par milhouz_deglingos dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 17/08/2005, 12h02
  2. Réponses: 1
    Dernier message: 30/03/2005, 14h03
  3. [PROPERTIES] Bug dans java.util.Properties ?
    Par mathieu dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 28/04/2004, 15h11
  4. Comment generer un fichier war dans java
    Par relivio dans le forum ANT
    Réponses: 4
    Dernier message: 12/03/2004, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo