Comment declarer plusieurs classes dans un fichier java

jb36123 3 Messages postés mercredi 14 décembre 2005Date d'inscription 12 juillet 2010 Dernière intervention - 9 nov. 2006 à 16:29 - Dernière réponse :  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
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 9 nov. 2006 à 17:18
12
Merci
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.

Merci Ombitious_Developper 12

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

meerci pour votre reponse , c une question que j ai eu dans un entretien et j pas pu la repondre :p
Commenter la réponse de Ombitious_Developper
Twinuts 5281 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 17 octobre 2018 Dernière intervention - 9 nov. 2006 à 18:05
1
Merci
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
Commenter la réponse de Twinuts
Twinuts 5281 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 17 octobre 2018 Dernière intervention - 9 nov. 2006 à 18:44
0
Merci
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
Commenter la réponse de Twinuts
JBAware 174 Messages postés lundi 23 septembre 2002Date d'inscription 6 avril 2011 Dernière intervention - 10 nov. 2006 à 12:56
0
Merci
A ce sujet...


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


Merci

[font=Times New Roman][8D] JB@WAreNew Roman
Commenter la réponse de JBAware
super_toinou 764 Messages postés mardi 25 mai 2004Date d'inscription 8 mars 2011 Dernière intervention - 10 nov. 2006 à 14:52
Commenter la réponse de super_toinou
cs_Yenapa 67 Messages postés samedi 12 juillet 2003Date d'inscription 26 juin 2009 Dernière intervention - 11 nov. 2006 à 21:41
0
Merci
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 :)
Commenter la réponse de cs_Yenapa
super_toinou 764 Messages postés mardi 25 mai 2004Date d'inscription 8 mars 2011 Dernière intervention - 11 nov. 2006 à 21:44
0
Merci
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
Commenter la réponse de super_toinou
cs_Yenapa 67 Messages postés samedi 12 juillet 2003Date d'inscription 26 juin 2009 Dernière intervention - 11 nov. 2006 à 23:43
0
Merci
Tout a fait,
mais une classe anonyme n'est elle pas une inner class?
Commenter la réponse de cs_Yenapa
super_toinou 764 Messages postés mardi 25 mai 2004Date d'inscription 8 mars 2011 Dernière intervention - 13 nov. 2006 à 13:30
0
Merci
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
Commenter la réponse de super_toinou
0
Merci
bonjour
comment délcarer une liste en java ?
Commenter la réponse de hmdola
0
Merci
je ne sais pas comment faire
Commenter la réponse de hmdola
0
Merci
bonjour javascript:void(0);
comment délcarer une liste en java ?
Commenter la réponse de hmdola
0
Merci
[^^sad1][^^sad1][^^sad1][^^sad1][^^sad1][^^sad1][^^sad1][^^sad1]
Commenter la réponse de hmdola
JBAware 174 Messages postés lundi 23 septembre 2002Date d'inscription 6 avril 2011 Dernière intervention - 11 mars 2013 à 23:59
0
Merci
Euh avec un ArrayList par exemple.

JB...
Commenter la réponse de JBAware
Commenter la réponse de hmdola

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.