Comment declarer plusieurs classes dans un fichier java
jb36123
Messages postés3Date d'inscriptionmercredi 14 décembre 2005StatutMembreDernière intervention12 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();
}
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 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.
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 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 ..."
cs_Yenapa
Messages postés67Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention26 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 :)
super_toinou
Messages postés764Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 8 mars 20116 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
27 août 2017 à 11:44