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 :

Erreur "declaration package does not match"


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut Erreur "declaration package does not match"
    Bonjour,

    J'ai écrit un programme et en le compilant j'ai les erreur suivantes :
    Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    The declared package "" does not match the expected package "Package1"

    at Package1.Student.<init>(Student.java:1)
    at Test.<init>(Results.java:4)
    at Results.<init>(Results.java:19)
    at Hybrid.main(Hybrid.java:7)

    at Package1.Student.<init>(Student.java:1)
    //import Package2.*;

    at Test.<init>(Results.java:4)
    class Test extends Student

    at Results.<init>(Results.java:19)
    public class Results extends Test implements Sports

    at Hybrid.main(Hybrid.java:7)
    Results student1=new Results();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class Student 
    {
     int rollNumber;
     public void getNumber(int n)
     {
         rollNumber=n;
     }
     void putNumber()
     { 
         System.out.println("Roll No:"+rollNumber);
     }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    package Package2;
    public interface Sports 
    {
     float sportWt=6.0F;
     void putWt();
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    import Package1.*;
    import Package2.*;
    class Test extends Student
    {
     float part1, part2;
     void getMarks(float m1,float m2)
     {
         part1=m1;
         part2=m2;
     }
     void putMarks()
     {
         System.out.println("Marks obtained");
         System.out.println("Part 1="+part1);
         System.out.println("Part 2="+part2);
     }
    }
    public class Results extends Test implements Sports
    {
         public void putWt()
         {
             System.out.println("Sports Wt="+sportWt);
         }
         float total;
         void display()
         {
             total=part1+part2+sportWt;
             putNumber();
             putMarks();
             putWt();
             System.out.println("Total score="+total);     
         }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import Package2.*;
    import Package1.*;
    public class Hybrid extends Test
    {
    public static void main(String[]args)
     {
         Results student1=new Results();
         student1.getNumber(1234);
         student1.getMarks(27.5F,33.0F);
         student1.display();
     }
    }
    Quelqu'un saurait-il m'expliquer d'où peut venir le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Je dirais qu'une de tes classes n'est pas dans le bon dossier de package.
    Au passage, en java, pas de majuscule dans les noms de package (C'est techniquement possible, mais c'est pas dans les bonnes pratiques), et une seule classe par fichier (Sauf classes internes) : sépare Test et Results.

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Mathieu.J Voir le message
    et une seule classe par fichier (Sauf classes internes) : sépare Test et Results.
    On peut mettre plusieurs classes externes dans le même fichier, c'est juste qu'il ne peut pas y en avoir plus d'une publique. (Parce qu'une classe publique ne peut être que dans un fichier qui porte son nom.)

    De temps en temps, ce n'est pas un mal. (Mais il est, par contre, assez mal de créer une classe publique qui étend une classe non-publique.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut
    j'ai corrigé mon prg,j'ai encore un petit souci
    dans le output
    s'affiche pas valeur de Roll No:
    au lieu de s'afficher Roll No:1234

    il s'affiche seulement:
    Roll No:0
    Marks obtained
    Part1=27.5
    Part2=33.0
    Sports Wt=6.0
    Total score=66.5

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    import package2.*;
    public class Student 
    {
       int rollNumber;
       void getNumber(int n)
       {
        int rollNumber=n;
       }
       void putNumber()
       {
        System.out.println("Roll No:"+rollNumber);
       }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    import package1.*;
    package package2;
    interface Sports
    {
     float sportWt=6.0F;
     void putWt();
    }
    class Test extends Student
    {
     float part1,part2;
     void getMarks(float m1, float m2)
     {
      part1=m1;
      part2=m2;
     }
     void putMarks()
     {
      System.out.println("Marks obtained");
      System.out.println("Part1="+part1);
      System.out.println("Part2="+part2);
     }
    }
    class Results extends Test implements  Sports
    {
     float total;
     public void putWt()
     {
      System.out.println("Sports Wt="+sportWt);
     }
     void display()
     {
      total=part1+part2+sportWt;
      putNumber();
      putMarks();
      putWt();
      System.out.println("Total score="+total);
     }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import package1.*;
    package package2;
    public class Hybrid 
    {
    public static void main(String[]args)
         {
         Results student1=new Results();
         student1.getNumber(1234);
         student1.getMarks(27.5F,33.0F);
         student1.display();
         }
    }

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Alors, encore quelques conventions... En général, les méthodes getX sont faites pour récupérer la valeur de X et setX pour modifier la valeur de X. Le fait d'utiliser des get pour modifer des valeurs n'aide pas à la compréhension de ton programme.

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Convention en premier :
    Méthodes getXXX => renvoyer XXX.
    Méthodes setXXX => assigner la variable passée en paramètre à XXX (ou équivalent).

    Ensuite, c'est normal.

    Dans ta méthode getNumber(int), tu déclares une variables locale masquant la variable de l'objet.
    Ainsi, tu attribues à la variable locale nouvellement créée, qui est détruite à la fin de la méthode, et l'attribut du même nom n'a pas été modifié.

    Enlève le "int" devant la variable et ça ira.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  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
    Par défaut
    C'est sur qu'un getter qui joue le rôle d'un setter c'est assez perturbant.

    Sinon pour ton information, je viens de trouver un PDF listant les conventions habituelles avec Java : ici.
    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 très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut
    bonjour
    j'ai corrigé comme vs m'avez dit
    pb est présent toujours, maintenant,s'affiche le message suivant
    Exception in thread "main" java.lang.Error: Unresolved compilation problem:
    The method setMarks(float, float) is undefined for the type Results

    at Package2.Hybrid.main(Hybrid.java:9)

    la ligne 9 est:
    student1.setMarks(27.5F,33.0F);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    import Package2.*; 
    package Package1.*; 
    public class Student  
    { 
     int rollNumber; 
     public void setNumber(int n) 
     { 
      rollNumber=n; 
     } 
     void putNumber() 
     {  
      System.out.println("Roll No:"+rollNumber); 
     } 
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    import Package1.*; 
    package Package2; 
    public class Hybrid  
    { 
     public static void main(String[]args) 
        { 
        Results student1=new Results(); 
        student1.setNumber(1234); 
        student1.setMarks(27.5F,33.0F); 
        student1.display(); 
        } 
    }
    et encore
    dans le class sports, dans la method display
    dans la phrase suivante putNumber(); est souligné

    merci vos aides

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

Discussions similaires

  1. erreur a la compilation ,package does not existe
    Par 304bl dans le forum Général Java
    Réponses: 3
    Dernier message: 12/07/2011, 10h41
  2. Réponses: 1
    Dernier message: 10/05/2006, 12h11
  3. jogl - package does not exist
    Par laurent_ifips dans le forum 3D
    Réponses: 6
    Dernier message: 14/04/2006, 22h59
  4. Réponses: 11
    Dernier message: 08/10/2004, 15h12
  5. [Plugin]package does not match the expected package src
    Par Fladnag dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 10/03/2004, 20h17

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