j'apprends Java avec le livre des Cahiers du Programmeur.
Et j'ai un problème de compilation.
J'ai un fichier "Boissons.java" qui contient :
************* Boissons.java
package com.eteks.test;
class Boisson {
// les attributs
...
// le contructeur
Boisson (String nom) { this.nom = nom;}
// autres méthodes
...
}
class Boissons {
public static void main (String args[]) {
// du code pour tester la classe Boisson
}
}
*****************************
Ensuite, j'ai un autre fichier "CaveAVins" qui fait également parti du
package com.eteks.test et qui a un moment fait appel à Boisson :
Boisson soda = new Boisson("soda");
Cette ligne déclenche une erreur de compilation "cannot find symbol"
symbol : class Boisson
symbol : class com.eteks.test.CaveAVin
Je ne peux résoudre le problème qu'en créant un fichier Boisson.java et
en mettent l'implémentation de la classe dedans avec le modificateur
"public" devant.
Est-ce normal ?
Car sur le CD fourni avec le bouquin, les fichiers sont comme j'ai
écrit, ils n'ont pas à subir cette modification.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jlp
Bonjour,
j'apprends Java avec le livre des Cahiers du Programmeur.
Et j'ai un problème de compilation.
J'ai un fichier "Boissons.java" qui contient :
************* Boissons.java
package com.eteks.test;
class Boisson { // les attributs ...
// le contructeur Boisson (String nom) { this.nom = nom;}
// autres méthodes ... }
class Boissons {
public static void main (String args[]) {
// du code pour tester la classe Boisson } }
*****************************
Ensuite, j'ai un autre fichier "CaveAVins" qui fait également parti du package com.eteks.test et qui a un moment fait appel à Boisson :
Boisson soda = new Boisson("soda");
Cette ligne déclenche une erreur de compilation "cannot find symbol" symbol : class Boisson symbol : class com.eteks.test.CaveAVin
Je ne peux résoudre le problème qu'en créant un fichier Boisson.java et en mettent l'implémentation de la classe dedans avec le modificateur "public" devant.
Est-ce normal ? Oui
Car sur le CD fourni avec le bouquin, les fichiers sont comme j'ai écrit, ils n'ont pas à subir cette modification.
D'autre part en renommant le fichier Boisson.java ( sans s ) et en supprimant la classe Boissons dans le fichier ( la méthode main peut rester dans la classe Boisson sans pb). Cela marchera.
Bonjour,
j'apprends Java avec le livre des Cahiers du Programmeur.
Et j'ai un problème de compilation.
J'ai un fichier "Boissons.java" qui contient :
************* Boissons.java
package com.eteks.test;
class Boisson {
// les attributs
...
// le contructeur
Boisson (String nom) { this.nom = nom;}
// autres méthodes
...
}
class Boissons {
public static void main (String args[]) {
// du code pour tester la classe Boisson
}
}
*****************************
Ensuite, j'ai un autre fichier "CaveAVins" qui fait également parti du
package com.eteks.test et qui a un moment fait appel à Boisson :
Boisson soda = new Boisson("soda");
Cette ligne déclenche une erreur de compilation "cannot find symbol"
symbol : class Boisson
symbol : class com.eteks.test.CaveAVin
Je ne peux résoudre le problème qu'en créant un fichier Boisson.java et
en mettent l'implémentation de la classe dedans avec le modificateur
"public" devant.
Est-ce normal ?
Oui
Car sur le CD fourni avec le bouquin, les fichiers sont comme j'ai
écrit, ils n'ont pas à subir cette modification.
D'autre part en renommant le fichier Boisson.java ( sans s ) et en
supprimant la classe Boissons dans le fichier ( la méthode main peut
rester dans la classe Boisson sans pb). Cela marchera.
j'apprends Java avec le livre des Cahiers du Programmeur.
Et j'ai un problème de compilation.
J'ai un fichier "Boissons.java" qui contient :
************* Boissons.java
package com.eteks.test;
class Boisson { // les attributs ...
// le contructeur Boisson (String nom) { this.nom = nom;}
// autres méthodes ... }
class Boissons {
public static void main (String args[]) {
// du code pour tester la classe Boisson } }
*****************************
Ensuite, j'ai un autre fichier "CaveAVins" qui fait également parti du package com.eteks.test et qui a un moment fait appel à Boisson :
Boisson soda = new Boisson("soda");
Cette ligne déclenche une erreur de compilation "cannot find symbol" symbol : class Boisson symbol : class com.eteks.test.CaveAVin
Je ne peux résoudre le problème qu'en créant un fichier Boisson.java et en mettent l'implémentation de la classe dedans avec le modificateur "public" devant.
Est-ce normal ? Oui
Car sur le CD fourni avec le bouquin, les fichiers sont comme j'ai écrit, ils n'ont pas à subir cette modification.
D'autre part en renommant le fichier Boisson.java ( sans s ) et en supprimant la classe Boissons dans le fichier ( la méthode main peut rester dans la classe Boisson sans pb). Cela marchera.
Xavier Tarrago
En java, on a en général une classe par fichier. Pour trouver une classe, le loader cherche un fichier .class qui porte le nom de la classe ds le répertoire correspondant au package de la classe? Par exemple com.eteks.test.Boisson sera trouvée ds le répertoire $classpath/com/eteks/test et ds un fichier Boisson.class. Si ce fichier n'existe pas, on a l'erreur dite.
Je crois que les classes en plus ds les fichiers (comme ds ton exemple) ne sont visibles que depuis le code situé ds le même fichier. Mais c'est une pratique très peu répandue (en 5 ans de dév java professionnel, je n'ai jamais vu ça!)
"olivier shawn" a écrit dans le message de news: 456c4836$0$1064$
Bonjour,
j'apprends Java avec le livre des Cahiers du Programmeur.
Et j'ai un problème de compilation.
J'ai un fichier "Boissons.java" qui contient :
************* Boissons.java
package com.eteks.test;
class Boisson { // les attributs ...
// le contructeur Boisson (String nom) { this.nom = nom;}
// autres méthodes ... }
class Boissons {
public static void main (String args[]) {
// du code pour tester la classe Boisson } }
*****************************
Ensuite, j'ai un autre fichier "CaveAVins" qui fait également parti du package com.eteks.test et qui a un moment fait appel à Boisson :
Boisson soda = new Boisson("soda");
Cette ligne déclenche une erreur de compilation "cannot find symbol" symbol : class Boisson symbol : class com.eteks.test.CaveAVin
Je ne peux résoudre le problème qu'en créant un fichier Boisson.java et en mettent l'implémentation de la classe dedans avec le modificateur "public" devant.
Est-ce normal ? Car sur le CD fourni avec le bouquin, les fichiers sont comme j'ai écrit, ils n'ont pas à subir cette modification.
En java, on a en général une classe par fichier. Pour trouver une classe, le
loader cherche un fichier .class qui porte le nom de la classe ds le
répertoire correspondant au package de la classe? Par exemple
com.eteks.test.Boisson sera trouvée ds le répertoire
$classpath/com/eteks/test et ds un fichier Boisson.class. Si ce fichier
n'existe pas, on a l'erreur dite.
Je crois que les classes en plus ds les fichiers (comme ds ton exemple) ne
sont visibles que depuis le code situé ds le même fichier. Mais c'est une
pratique très peu répandue (en 5 ans de dév java professionnel, je n'ai
jamais vu ça!)
"olivier shawn" <olivier.shawn@netcourrier.com> a écrit dans le message de
news: 456c4836$0$1064$426a74cc@news.free.fr...
Bonjour,
j'apprends Java avec le livre des Cahiers du Programmeur.
Et j'ai un problème de compilation.
J'ai un fichier "Boissons.java" qui contient :
************* Boissons.java
package com.eteks.test;
class Boisson {
// les attributs
...
// le contructeur
Boisson (String nom) { this.nom = nom;}
// autres méthodes
...
}
class Boissons {
public static void main (String args[]) {
// du code pour tester la classe Boisson
}
}
*****************************
Ensuite, j'ai un autre fichier "CaveAVins" qui fait également parti du
package com.eteks.test et qui a un moment fait appel à Boisson :
Boisson soda = new Boisson("soda");
Cette ligne déclenche une erreur de compilation "cannot find symbol"
symbol : class Boisson
symbol : class com.eteks.test.CaveAVin
Je ne peux résoudre le problème qu'en créant un fichier Boisson.java et en
mettent l'implémentation de la classe dedans avec le modificateur "public"
devant.
Est-ce normal ?
Car sur le CD fourni avec le bouquin, les fichiers sont comme j'ai écrit,
ils n'ont pas à subir cette modification.
En java, on a en général une classe par fichier. Pour trouver une classe, le loader cherche un fichier .class qui porte le nom de la classe ds le répertoire correspondant au package de la classe? Par exemple com.eteks.test.Boisson sera trouvée ds le répertoire $classpath/com/eteks/test et ds un fichier Boisson.class. Si ce fichier n'existe pas, on a l'erreur dite.
Je crois que les classes en plus ds les fichiers (comme ds ton exemple) ne sont visibles que depuis le code situé ds le même fichier. Mais c'est une pratique très peu répandue (en 5 ans de dév java professionnel, je n'ai jamais vu ça!)
"olivier shawn" a écrit dans le message de news: 456c4836$0$1064$
Bonjour,
j'apprends Java avec le livre des Cahiers du Programmeur.
Et j'ai un problème de compilation.
J'ai un fichier "Boissons.java" qui contient :
************* Boissons.java
package com.eteks.test;
class Boisson { // les attributs ...
// le contructeur Boisson (String nom) { this.nom = nom;}
// autres méthodes ... }
class Boissons {
public static void main (String args[]) {
// du code pour tester la classe Boisson } }
*****************************
Ensuite, j'ai un autre fichier "CaveAVins" qui fait également parti du package com.eteks.test et qui a un moment fait appel à Boisson :
Boisson soda = new Boisson("soda");
Cette ligne déclenche une erreur de compilation "cannot find symbol" symbol : class Boisson symbol : class com.eteks.test.CaveAVin
Je ne peux résoudre le problème qu'en créant un fichier Boisson.java et en mettent l'implémentation de la classe dedans avec le modificateur "public" devant.
Est-ce normal ? Car sur le CD fourni avec le bouquin, les fichiers sont comme j'ai écrit, ils n'ont pas à subir cette modification.