Comment declarer plusieurs classes dans un fichier java

jb36123 Messages postés 3 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 12 juillet 2010 - 9 nov. 2006 à 16:29
 Moez - 27 août 2017 à 11:44
Bonjour a tous,
Je cherche le moyen de declarer plusieurs structures de données dans un seul fichier java (donc plusieurs classes). Ces structures etant publiques pour être utilisées dans d'autres classes. J'ai essayé de declarer un "package" mais j'ai toujours ce message d'erreur: "xxxx is public should be declared in a file named xxx.java". Je n'ai pas envie de faire un fichier java par structure de données ! Il doit bien y avoir un myen de faire ca plus simplement.
Bref un peu d'aide me ferai du bien ...

exemple testé sans succés:
soit fichier toto.java, dans un sous-repertoire "truc":
package truc;
public classe test_classe1 {
   int champ_x;
   int champ_y;
}
public classe test_classe2 {
   int champ_x;
}

Fichier tutu.java:
import truc.*

methode (){
  test_classe1 x = new test_classe1();
  test_classe1 y = new test_classe2();
}

merci  d'avance
A voir également:

15 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
9 nov. 2006 à 17:18
Salut:

Tu peux définir autant de classes que tu veux au sein d'un même fichier source.
La seule convention que tu dois repeccter c'est :

1. Une seule classe doit être déclarée public.
2. Le fichier source doit porter le nom de la classe qui est déclarée publique.
3. Si une méthode main a était définie elle devra nécessairement être au sein de la classe déclarée publique.
17
meerci pour votre reponse , c une question que j ai eu dans un entretien et j pas pu la repondre :p
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
9 nov. 2006 à 18:05
Salut,

plusieur cas possible (testé avec le jdk 1.5)

fichier Test.java

public class Test{
    ......
}
class Test2{
    ......
}
class TestN{
    ......
}

autre cas fichier Test.java
public class Test{

     private class Test2{//ici impossible d'y mettre des methodes static de plus reste non visible pour les autres


        ......
    }
    private class TestN{//ici impossible d'y mettre des methodes static de plus reste non visible pour les autres


        ......
    }

}

autre cas fichier Test.java

public class Test{


     private static class Test2{//ici possible d'y mettre des methodes static etreste non visible pour les autres



        ......

    }

    private static class TestN{//ici possible d'y mettre des methodes static et reste non visible pour les autres



        ......

    }


}

autre cas fichier Test.java

public class Test{


     public static class Test2{//ici possible d'y mettre des methodes static etreste visible pour les autres



        ......

    }

    public static class TestN{//ici possible d'y mettre des methodes static et reste visible pour les autres



        ......

    }


}

pour le dernier cas si tu veux creer une instance de Test2 tu peux faire :
Test.Test2 test2 = new Test.Test2();

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
1
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
9 nov. 2006 à 18:44
Salut,

petite précisition concernant
Test.Test2 test2 = new Test.Test2();
cela ne vaut que si tu veux creer l'instance en dehors de la classe si tu es dans la classe mere tu peux simplement faire
Test2 test2 = new Test2();

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
10 nov. 2006 à 12:56
A ce sujet...


Quelqu'un peut me rappeller l'interet des InnerClass ?


Merci

[font=Times New Roman][8D] JB@WAreNew Roman
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
10 nov. 2006 à 14:52
0
cs_Yenapa Messages postés 67 Date d'inscription samedi 12 juillet 2003 Statut Membre Dernière intervention 26 juin 2009
11 nov. 2006 à 21:41
JBAware:
Les innerclass sont tres pratiques pour definir les listeners par exemple
pour un jbutton:
JButton jb = new JButton("Bouton");
jb.addActionListener(new ActionListener() {
   ....
});

ou encore:

class ClasseEnglobante extends JFrame {
   private ActionListener myListener = new ActionListener() {
         ...
   }
   
   ...
   public ClasseEnglobante() {
      ...
      for(int i = 0; i < 3; i++) {
         JButton jb = new JButton("Bouton " + i);
         jb.addActionListener(myListener);
         add(jb);
   }
   ...
}

En plus, les inner-class permettent d'acceder aux attributes de la classe englobante (meme si ils sont privés), c'est assez pratique des fois, meme si c'est assez sale.

Bon apres, pour les puristes, on peux toujours se passer des inner class :)
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
11 nov. 2006 à 21:44
Yopla,
je me permet juste de rajouter (enfin il me semble) que dans le premier cas c est une classe anonyme et que dans le deuxieme c est une innerclass.
++ Toinou
0
cs_Yenapa Messages postés 67 Date d'inscription samedi 12 juillet 2003 Statut Membre Dernière intervention 26 juin 2009
11 nov. 2006 à 23:43
Tout a fait,
mais une classe anonyme n'est elle pas une inner class?
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
13 nov. 2006 à 13:30
yepla,
c vrai pour moi c est juste qu elle est réutilisable c tout !!
c etait juste un complément d information pour le vocabulaire :D
++ Toinou
0
bonjour
comment délcarer une liste en java ?
0
je ne sais pas comment faire
0
bonjour javascript:void(0);
comment délcarer une liste en java ?
0
[^^sad1][^^sad1][^^sad1][^^sad1][^^sad1][^^sad1][^^sad1][^^sad1]
0
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
11 mars 2013 à 23:59
Euh avec un ArrayList par exemple.

JB...
0
merciiiiiiii
0
Rejoignez-nous