Comment declarer plusieurs classes dans un fichier java

Messages postés
3
Date d'inscription
mercredi 14 décembre 2005
Dernière intervention
12 juillet 2010
- - 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

15 réponses

Meilleure réponse
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Dernière intervention
26 juillet 2013
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.

Dire « Merci » 12

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 96 internautes nous ont dit merci 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
Messages postés
5308
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
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
Messages postés
5308
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
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
Messages postés
174
Date d'inscription
lundi 23 septembre 2002
Dernière intervention
6 avril 2011
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
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Dernière intervention
8 mars 2011
Commenter la réponse de super_toinou
Messages postés
67
Date d'inscription
samedi 12 juillet 2003
Dernière intervention
26 juin 2009
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
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Dernière intervention
8 mars 2011
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
Messages postés
67
Date d'inscription
samedi 12 juillet 2003
Dernière intervention
26 juin 2009
0
Merci
Tout a fait,
mais une classe anonyme n'est elle pas une inner class?
Commenter la réponse de cs_Yenapa
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Dernière intervention
8 mars 2011
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
Messages postés
174
Date d'inscription
lundi 23 septembre 2002
Dernière intervention
6 avril 2011
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.