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

avec Java Discussion :

Comment fonctionne les packages ?


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut Comment fonctionne les packages ?
    Bonjours a tous ,

    j'ai un souci de compréhension du package, j'ai essayer de faire un test me je n'y arrive pas voici.

    je suis sous eclipse, j'ai donc crée 2 projet:

    Projet "proj1" avec une class A
    Projet "proj2" avec une class B

    voici la class A:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    package lettre;
     
    public class alphaA {
    	alphaA()
    	{
    		System.out.println(" test des package");
    	}
     
    }
    voici la class B

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    import lettre;
    public class alphaB {
    	public static void main (String [] arg)
    	{
    	alphaA instance = new alphaA();
    	}
     
    }
    j'essaye d'utiliser la classA mais cela ne fonctionne pas, que faut t'il faire de plus ? je ne comprend pas le fonctionnement d'un package

    merci d'avance pour la réponse

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    la réponse est simple si tu veux utiliser la classe alphaA alors tu importes la classe alphaA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    import lettre.alphaA;
    il existe aussi la possibilité d'importer tout un package comme suit :
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    merci de ta réponse Alkhan

    j'ai donc ajouter ce que tu m'a dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    import lettre.alphaA;
    public class alphaB {
    	public static void main (String [] arg)
    	{
    	alphaA instance = new alphaA();
    	}
     
    }
    cela ne fonctionne toujours pas

    par contre sur alphaA, eclipse m'indique sur la ligne
    The déclare Package "lettre" does not match the expected package

    Lorsqu'on crée un package cela suffit t'il de faire "package lettre"? ou on doit préciser autres choses ?

  4. #4
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Points : 955
    Points
    955
    Par défaut
    ceci n'est étant pas bien expliqué je vais te donner un exemple très simple avec eclipse;

    1) tu crées un projet java
    2) tu clique le document src dans ton arborescence
    --> tu crées un premier package (lettre)
    --> tu crées un deuxième package (test)
    3) dans le package "lettre" tu crées une classe (alphaA )
    son contenu doit etre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    package lettre;
     
    public class alphaA {
    	alphaA()
    	{
    		System.out.println(" test des package");
    	}
     
    }
    4) dans le package "test" tu crées une classe (alphaB )
    son contenu doit etre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    package test;
    import lettre.alphaA;
    public class alphaB {
    	public static void main (String [] arg)
    	{
    	alphaA instance = new alphaA();
    	}
     
    }
    Ce qu'on appelons le hasard n'est que notre incapacité à comprendre un degré d'ordre supérieur.

  5. #5
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Est ce que dans ton arborescence, la classe alphaA est dans ton package lettre?

    EDIT: cf. poste du dessus

  6. #6
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    il suffit pas uniquement de faire l'import, il faut que la structure existe !
    Concrètement un package correspond a une structure de répertoire.
    conclusion dans ton répertoire de sources tu dois trouver :
    - alphaB.java
    - lettre (répertoire) qui contient :
    - alphaA.java

    Sous eclipse dans la vue "package explorer" tu ne les vois pas comme des répertoire !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par neufrdb Voir le message
    je suis sous eclipse, j'ai donc crée 2 projet:

    Projet "proj1" avec une class A
    Projet "proj2" avec une class B
    Sauf que moi ce que je comprends c'est qu'il a créé 2 projets différents. alphaA.java et alphaB.java ne sont donc pas dans le même répertoire de source.

    Mets donc tes fichiers au sein du même projet déjà avec :
    src\alphaB.java
    src\lettre\alphaA.java
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    merci de toute ces réponses, au debut je croyais que pour faire un package il fallait crée 2 projets différent En fait il en fallait que 1 seul projet et dans src plein de sous répertoires.

    donc imaginosn que je n'ai pas eclispe sous la main (c'est juste pour comprendre, de toute façon avec un examen on ne dispose pas de pc)

    1- je recherche le repertoire "src"
    2- je crée un sous repertoire dans ce "src", son nom sera le nom du package
    3 - dans ce package je doit mettre (package "le_nom_du_package")
    4- pour utiliser ce pakage je doit faire une importation le nom du pakage.sa class

    donc si je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    import lettre.alphaA
    le compilateur java va rechercher le repertoire lettre et la class alphaA .
    par contre je me posai une autre question ?

    les sous package ca existes ?? si j'ai comme chemin ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monprojet/lettre/chiffre
    on peut écire ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    package lettre.chiffre.alpha1
    je me posais la question si c'était obligatoire d'ndiquer "package lettre" ,
    car comme il est dans le repertoire lettre on déduit qu'il est dans le package lettre?

  9. #9
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Oui, il est obligatoire d'écrire l'instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    package lettre.chiffre.alpha1
    Oui le mécanisme de sous-package existe bel et bien et ça fonctionne comme tu viens de le mettre.

    Avec ces sous-packages tu pourras ainsi rendre ton application plus structurée et les fonctionnalités mieux encapsulées.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 146
    Points : 69
    Points
    69
    Par défaut
    merci a tous des ces précisions, je me suis compliqué le chose pour rien alors que c'était simple.


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

Discussions similaires

  1. Comment fonctionnent les "keywords"
    Par shikakus dans le forum Référencement
    Réponses: 3
    Dernier message: 29/01/2007, 00h13
  2. Comment fonctionne les versions d'un logiciel?
    Par Antigonos Ier Gonatas dans le forum Windows
    Réponses: 12
    Dernier message: 14/07/2006, 18h48
  3. [VB6] Comment fonctionne les Tableaux ?
    Par Lucas42 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 27/04/2006, 14h59
  4. [FLASH 8] Comment fonctionne les clips
    Par steeves5 dans le forum Flash
    Réponses: 3
    Dernier message: 27/01/2006, 10h23
  5. Comment fonctionnent les index des options d'un select ?
    Par pekka77 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/10/2005, 18h05

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