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 :

[Débutant] Utilisation de class non publique dans un autre package


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 13
    Points
    13
    Par défaut [Débutant] Utilisation de class non publique dans un autre package
    Bonjour et merci pour le temps consacré à mon topic.

    J'ai un package principale de lancement ou j'ai la méthode main.
    Un autre package ou j'ai une classe Objet, et une autre classe ObjetSpecialisé qui hérite de Objet, toute deux dans le même fichier source et donc Objet en public et ObjetSpécialisé non public.
    Je n'arrive pas à utiliser le constructeur de ObjetSpecialisé dans le main malgrès l'import (le créateur de Objet ne me pose pas ce problème).

    Je ne peux pas metre ObjetSpécialisé en Public parce qu'elle est dans le même fichier source que Objet.

    Et je n'ai pas envie de metre ObjetSpécialisé dans un autre fichier source parce que je suis ammené à avoir ObjetSpecialisé1, ObjetSpecialisé2 etc ... qui hériterons tous de Objet.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 159
    Points : 467
    Points
    467
    Par défaut
    Et je n'ai pas envie de metre ObjetSpécialisé dans un autre fichier source parce que je suis ammené à avoir ObjetSpecialisé1, ObjetSpecialisé2 etc ... qui hériterons tous de Objet.
    Tu n'as pas le choix, d'ailleur je ne vois pas pourquoi tu ne veux pas le faire.

  3. #3
    Membre régulier
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 58
    Points : 73
    Points
    73
    Par défaut
    Bonjour.

    Si ta classe ne possède pas de préfixe (public, private ....) comme cela à l'air le cas pour ta classe spécialisée, elle est uniquement accessible par les classes du même package.

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par yannart
    Tu n'as pas le choix, d'ailleur je ne vois pas pourquoi tu ne veux pas le faire.

    J'ai effectivement fais comme ca pour que ca fonctionne finalement.

    Mais ca me laisse perplexe, je programme en utilisant des package pour que la programmation soit clair et bien faite, mais bizarement ca restreint les possibilités. Vaut mieux faire comme les débutants et metre tout dans un seul fichier source.

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Enayem
    J'ai effectivement fais comme ca pour que ca fonctionne finalement.

    Mais ca me laisse perplexe, je programme en utilisant des package pour que la programmation soit clair et bien faite, mais bizarement ca restreint les possibilités. Vaut mieux faire comme les débutants et metre tout dans un seul fichier source.
    ?????

    Visiblement tu veux utiliser les package pour avoir une approche "composant" où chaque composant/package est isolé des autres.

    Dans ce cas, il suffit de créer une interface publique et une factory publique dans ton package et tout le reste en privé.

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    J'ai bien essayé avec une interface, mais j'ai pas pu rajouter le constructeur dans l'interface.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    salut,
    Tu pourrais peut-être définir des classes internes public et static; ça t'éviterait d'avoir à mettre chaque classe dans un fichier à part, tout en les laissant accessibles à tous (via MaClasseExterne.ClasseInterne) ...

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Oui c'est vrai que c'est une solution mais ce serait tourner autour du pot.
    Je vous remercie pour vos réponses et le temps passer sur mon topic.

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Points
    16 084
    Par défaut
    Citation Envoyé par Enayem
    J'ai bien essayé avec une interface, mais j'ai pas pu rajouter le constructeur dans l'interface.
    Oui, ca c'est normal. Les interfaces ne contiennent que des methodes, et, en Objet, le constructeur n'est pas considéré comme une methode.


    Exemple d'utilisation d'un package pour modeliser un composant. Le package, et donc le composant, s'appellera composant1:

    L'interface (publique)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    package composant1;
     
    public interface Composant1 {
    	int getValue();
    }
    La factory (publique)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    package composant1;
     
    public class Factory1 {
    	static public Composant1 newComposant1() {
    		return new Implementation1();
    	}
    }
    Une implementation (privée)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    package composant1;
     
    class Implementation1 implements Composant1 {
    	public int getValue() {
    		return 123;
    	}
    }
    Exemple d'utilisation depuis un autre package:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import composant1.Composant1;
    import composant1.Factory1;
     
    public class testComposant1 {
    	public static void main(String[] args) {
    		Composant1 c1 = Factory1.newComposant1();
    		System.out.println(c1.getValue());
    	}
    }

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

Discussions similaires

  1. [JSP][Tomcat][Débutant] Utiliser une classe dans du JSP
    Par mavina dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 09/05/2007, 11h50
  2. Réponses: 1
    Dernier message: 03/03/2007, 12h28
  3. Utiliser les class du projet dans le plugin
    Par Shiftane dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 19/01/2007, 08h36
  4. Utilisation d'une variable publique dans une DLL
    Par Delphi-ne dans le forum Delphi
    Réponses: 13
    Dernier message: 05/12/2006, 13h19
  5. [débutante]utiliser les classes css pour surligner des liens
    Par Mitaka dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 06/01/2006, 09h37

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