OVH Cloud OVH Cloud

[debutant] Classe invisible ??

10 réponses
Avatar
Laurent
Bonjour,

je viens de commencer un projet avec Eclipse, dans lequel j ai 2 classes
: test.package1.Classe1 et test.package2.Classe2
Classe1 et 2 héritent de lang.Object
Arborescence projet :
projetTest
-package1
-classe1
-package2
-classe2
-MainClasse (contient juste la classe main)
je précise que les imports sont corrects.

Dans mon main, qui se trouve à l exterieur des packages 1 et 2, lorsque
je veux instancier un objet de type Classe1 ou 2, j obtient une erreur :
classe1 invisible ? les classes et les methodes sont toutes publiques.

Quelqu'un peut il m expliquer qu'est ce que je ne fais pas correctement ??
Merci,
Laurent

10 réponses

Avatar
Dave S.
"Laurent" a écrit dans le message de
news:AqH7b.10214$
Bonjour,
Salut à toi,


je viens de commencer un projet avec Eclipse, dans lequel j ai 2 classes
: test.package1.Classe1 et test.package2.Classe2
Classe1 et 2 héritent de lang.Object
Arborescence projet :
projetTest
-package1
-classe1
-package2
-classe2
-MainClasse (contient juste la classe main)
je précise que les imports sont corrects.


Oui mais tu en oublies un, il faut importer les packages1 et 2 dans la
classe ou tu as ta fonction main...
et ca devrait marcher du coup



Dans mon main, qui se trouve à l exterieur des packages 1 et 2, lorsque
je veux instancier un objet de type Classe1 ou 2, j obtient une erreur :
classe1 invisible ? les classes et les methodes sont toutes publiques.

Quelqu'un peut il m expliquer qu'est ce que je ne fais pas correctement ??
Merci,


de rien

Laurent



Avatar
Laurent
Dave S. wrote:

"Laurent" a écrit dans le message de
news:AqH7b.10214$

Bonjour,


Salut à toi,

je viens de commencer un projet avec Eclipse, dans lequel j ai 2 classes
: test.package1.Classe1 et test.package2.Classe2
Classe1 et 2 héritent de lang.Object
Arborescence projet :
projetTest
-package1
-classe1
-package2
-classe2
-MainClasse (contient juste la classe main)
je précise que les imports sont corrects.



Oui mais tu en oublies un, il faut importer les packages1 et 2 dans la
classe ou tu as ta fonction main...
et ca devrait marcher du coup
Eh non, c est ce que je voulais dire par "les imports sont corrects".

voici mon code :

import package1.Classe1;
^^^^^^^^^^^^^^^^^^^^^^^^
public class MainClasse {

public static void main(String[] args) {
Classe1 newClass = new Classe1(); //erreur classe invisible ??
}
}
Une idée ??

Dans mon main, qui se trouve à l exterieur des packages 1 et 2, lorsque
je veux instancier un objet de type Classe1 ou 2, j obtient une erreur :
classe1 invisible ? les classes et les methodes sont toutes publiques.

Quelqu'un peut il m expliquer qu'est ce que je ne fais pas correctement ??
Merci,



de rien


Laurent








Avatar
Olivier Thomann
On Wed, 10 Sep 2003 15:28:32 GMT, Laurent
wrote:
je viens de commencer un projet avec Eclipse, dans lequel j ai 2 classes
: test.package1.Classe1 et test.package2.Classe2
Classe1 et 2 héritent de lang.Object
Arborescence projet :
projetTest
-package1
-classe1
-package2
-classe2
-MainClasse (contient juste la classe main)
je précise que les imports sont corrects.
Tu parles de test.package1.Classe1 et tu importes package1.Classe1.

Quelque chose ne va pas. Peux-tu donner ton layout exact. As-tu des
source folders?
--
Olivier

Avatar
Philippe C
import package1.Classe1;
^^^^^^^^^^^^^^^^^^^^^^^^
public class MainClasse {

public static void main(String[] args) {
Classe1 newClass = new Classe1(); //erreur classe invisible ??
}
}


As-tu sauvegardé ta Classe1 ?
Peut être un simple pb de mise à jour ...

Sinon peut-tu nous fournir la Classe1 pour avoir toutes les données ?
Merci d'avance

--
Philippe C

Avatar
Laurent
Philippe C wrote:

import package1.Classe1;
^^^^^^^^^^^^^^^^^^^^^^^^
public class MainClasse {

public static void main(String[] args) {
Classe1 newClass = new Classe1(); //erreur classe invisible ??
}
}



As-tu sauvegardé ta Classe1 ?
Peut être un simple pb de mise à jour ...
Oui,


Sinon peut-tu nous fournir la Classe1 pour avoir toutes les données ?
Voila,


package package1;
public class Classe1 {
private String att;

Classe1(){
}
public String getAttrib(){
return att;
}
public void setAttrib(String string){
att= string;
}
}

je me demande si le probleme ne serait pas dans la config d eclipse ?
Une idee pour la traduction de invisible, peut etre ca aiderait a
trouver d ou vient le probleme ?
Laurent


Avatar
Laurent
Olivier Thomann wrote:

On Wed, 10 Sep 2003 15:28:32 GMT, Laurent
wrote:

je viens de commencer un projet avec Eclipse, dans lequel j ai 2 classes
: test.package1.Classe1 et test.package2.Classe2
Classe1 et 2 héritent de lang.Object
Arborescence projet :
projetTest
-package1
-classe1
-package2
-classe2
-MainClasse (contient juste la classe main)
je précise que les imports sont corrects.


Tu parles de test.package1.Classe1 et tu importes package1.Classe1.
Test c est le nom du projet, je pense pas qu'il entre en jeu, c est

juste qu il contient les 2 packages et le main

Quelque chose ne va pas. Peux-tu donner ton layout exact.
c est quoi un layout ? ;)

As-tu des> source folders?
Non, les classes compilent et les fichiers class se trouvent dans le
meme repertoire, classe1.class avec classe1.java, meme chose pour classe2.
Est ce que je devrait regrouper les classes compilées ??
Merci,
Laurent


Avatar
Laurent
Laurent wrote:

Philippe C wrote:

import package1.Classe1;
^^^^^^^^^^^^^^^^^^^^^^^^
public class MainClasse {

public static void main(String[] args) {
Classe1 newClass = new Classe1(); //erreur classe invisible ??
}
}




As-tu sauvegardé ta Classe1 ?
Peut être un simple pb de mise à jour ...


Oui,

Sinon peut-tu nous fournir la Classe1 pour avoir toutes les données ?


Voila,

package package1;
public class Classe1 {
private String att;

Classe1(){
}
public String getAttrib(){
return att;
}
public void setAttrib(String string){
att= string;
}
}

je me demande si le probleme ne serait pas dans la config d eclipse ?
Une idee pour la traduction de invisible, peut etre ca aiderait a
trouver d ou vient le probleme ?
Laurent

Je viens de trouver !

j avais pas mis public devant mon constructeur :(
Merci à tous pour vos réponses
Laurent



Avatar
Olivier Thomann
On Wed, 10 Sep 2003 17:30:35 GMT, Laurent
wrote:
package package1;
public class Classe1 {
private String att;

Classe1(){
}
public String getAttrib(){
return att;
}
public void setAttrib(String string){
att= string;
}
}
Ton constructeur est package visible. Ce qui veut dire qu'en dehors du

package, il n'est pas visible. Mets ton constructeur public et ça
devrait marcher.

je me demande si le probleme ne serait pas dans la config d eclipse ?
Une idee pour la traduction de invisible, peut etre ca aiderait a
trouver d ou vient le probleme ?
En anglais, le message d'erreur est "not visible".

HTH,
--
Olivier

Avatar
Olivier Thomann
On Wed, 10 Sep 2003 17:35:14 GMT, Laurent
wrote:
Non, les classes compilent et les fichiers class se trouvent dans le
meme repertoire, classe1.class avec classe1.java, meme chose pour classe2.
Est ce que je devrait regrouper les classes compilées ??
Mettons que je trouve cela plus organisé de créer un source folder

appelé src et tous les .class vont dans bin.
Ton problème est un problème de visibilité du constructeur de ta
classe package1.Classe1.
--
Olivier

Avatar
ali.k
Laurent a écrit:
Bonjour,

je viens de commencer un projet avec Eclipse, dans lequel j ai 2 classes
: test.package1.Classe1 et test.package2.Classe2
Classe1 et 2 héritent de lang.Object
Arborescence projet :
projetTest
-package1
-classe1
-package2
-classe2
-MainClasse (contient juste la classe main)
je précise que les imports sont corrects.

Dans mon main, qui se trouve à l exterieur des packages 1 et 2, lorsque
je veux instancier un objet de type Classe1 ou 2, j obtient une erreur :
classe1 invisible ? les classes et les methodes sont toutes publiques.

Quelqu'un peut il m expliquer qu'est ce que je ne fais pas correctement ??
Merci,
Laurent

peux-tu spécifier l'arborescence de tes sources ?