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

Langage Java Discussion :

Subtilité de java


Sujet :

Langage Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Par défaut Subtilité de java
    Bonjour,

    J'ai créé un module que je voudrais exporter en .jar pour qu'il soit utilisé comme une lib.

    Mon problème, c'est qu'au sein du module, il y a des méthodes publiques, mais je ne veux pas qu elles soient accessible en dehors du module.

    En C/C++ en créant une lib, on met les fonctions qu'on permet d'utiliser dans le .h, et le reste n'est pas accessible (sauf avec extern, mais la c'est n'importe quoi). Avec mon .jar, là, je ne peux pas juste lister un certain nombre de fonctions accessible depuis l'extérieur.

    Est ce qu'il y a moyen d'arriver à ce resultat ? Est ce que j'ai été clair au moins ?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Citation Envoyé par Faiche Voir le message
    Mon problème, c'est qu'au sein du module, il y a des méthodes publiques, mais je ne veux pas qu elles soient accessible en dehors du module.
    Et bien déclare-les protected (ou private).

    Par contre, tu ne pourras pas y accéder depuis l'extérieur du package, si ta librairie en comporte plusieurs. Et il n'y a pas de modificateur de visibilité entre "public" et "protected"
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Par défaut
    Citation Envoyé par CyberChouan Voir le message
    Et bien déclare-les protected (ou private).

    Par contre, tu ne pourras pas y accéder depuis l'extérieur du package, si ta librairie en comporte plusieurs. Et il n'y a pas de modificateur de visibilité entre "public" et "protected"
    Justement, il y a des packages dans mon module. Par exemple, un package de fonction outils en public static, qui n'est utile qu'au sein du module.

    Et j'ai pas compris l'histoire du modificateur de visibilité.

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Faiche Voir le message
    Justement, il y a des packages dans mon module. Par exemple, un package de fonction outils en public static, qui n'est utile qu'au sein du module.
    Dans ce cas ce n'est pas possible : un élément public ne peut pas être caché des autres packages...


    Cette limitation devrait être comblée dans Java 7 avec les superpackages...

    Citation Envoyé par Faiche Voir le message
    Et j'ai pas compris l'histoire du modificateur de visibilité.
    Il veut dire par là qu'il n'est pas possible d'utiliser une visibilité public limité à certain package...

    a++

  5. #5
    Membre éprouvé Avatar de manube
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Mai 2004
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Responsable sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 180
    Par défaut
    Salut,

    Tu peux regarder du coté du design pattern Facade.

    Ca ne résoudra pas ton pb mais ça te permettra de diriger les users sur les méthodes qu'ils sont sensés utiliser (mais comme expliqué précédemment ils pourront tjs accéder aux autres).

    ++

  6. #6
    Membre éclairé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,


    Dans ce cas ce n'est pas possible : un élément public ne peut pas être caché des autres packages...


    Cette limitation devrait être comblée dans Java 7 avec les superpackages...


    Il veut dire par là qu'il n'est pas possible d'utiliser une visibilité public limité à certain package...

    a++
    Merci pour la réponse précise

    Vivement java 7 alors :p

  7. #7
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Coucou,

    Une question me taraude à ce sujet :

    Admétons une classe Classe1 dans un package package1.sousPackage .
    Admétons ensuite une classe Classe2 dans le package package1 .
    Toutes les deux ont des fonctions dont la visibilité est package. A-t-on une visibilité d'une classe à l'autre de ces fonctions ou pas ?
    J'entend par là est-ce qu'on peut appeler les fonctions package de Classe2 à partir de Classe1 et vice versa ?

    Merci

    Fred

  8. #8
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mavina Voir le message
    J'entend par là est-ce qu'on peut appeler les fonctions package de Classe2 à partir de Classe1 et vice versa ?
    Non : la visibilité package se limite strictement au package... et c'est justement le problème

    a++

  9. #9
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Okay merci,

    C'est ce que je me disais aussi, mais je voulais avoir confirmation pour être sûr!

    Fred

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

Discussions similaires

  1. Subtilité du Java ?
    Par zulad dans le forum Langage
    Réponses: 1
    Dernier message: 19/08/2013, 18h40
  2. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 20h17
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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