JAVA - Impossible d'instancier une classe !
S.BOURGIN
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
choubaka Messages postés 39442 Date d'inscription Statut Modérateur Dernière intervention -
choubaka Messages postés 39442 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
- Microsoft Windows XP
- SDK 1.4.1.01
- JCreator 2.5
Je débute en programmation JAVA et je doit réaliser un exercice simple sur le concept des classes. Cependant, je n'arrive par à instancier mes classes ! Je ne pense pas que cela vient de mon programme car j'ai téléchargé des exemples et lors de l'intenciation JCreator me retourne le meme message d'erreur.
public class LP_TD2_EXO1
{
public class COMPTE
{
public String Numero;
public float Solde;
public COMPTE(String $Num)
{
this.Numero=$Num;
this.Solde=0;
}
}
public static void main(String args[])
{
COMPTE C1 = new COMPTE();
}
}
MESSAGE ERREUR A LA COMPILATION :
F:\www\java\LP_TD2_EXO1.java:63: non-static variable this cannot be referenced from a static context
COMPTE C1 = new COMPTE();
Quelqu'un pourrait m'aider SVP parceque là je n'avance pas dans l'exo ? :o(
Merci
- Microsoft Windows XP
- SDK 1.4.1.01
- JCreator 2.5
Je débute en programmation JAVA et je doit réaliser un exercice simple sur le concept des classes. Cependant, je n'arrive par à instancier mes classes ! Je ne pense pas que cela vient de mon programme car j'ai téléchargé des exemples et lors de l'intenciation JCreator me retourne le meme message d'erreur.
public class LP_TD2_EXO1
{
public class COMPTE
{
public String Numero;
public float Solde;
public COMPTE(String $Num)
{
this.Numero=$Num;
this.Solde=0;
}
}
public static void main(String args[])
{
COMPTE C1 = new COMPTE();
}
}
MESSAGE ERREUR A LA COMPILATION :
F:\www\java\LP_TD2_EXO1.java:63: non-static variable this cannot be referenced from a static context
COMPTE C1 = new COMPTE();
Quelqu'un pourrait m'aider SVP parceque là je n'avance pas dans l'exo ? :o(
Merci
A voir également:
- JAVA - Impossible d'instancier une classe !
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
5 réponses
Salut !
Je pense savoir d'ou viens ton erreur. Ton instanciation c'est ca mais c'est pas ca !
Tu ne passes pas de parametres lors de ton instanciation mais ta méthode attends un parametre. donc il faut que tu fasses ceci pour que ca marche:
COMPTE C1 = new COMPTE(num);
Si tu veux ne pas passer de parametre, tu doit rajouter dans ta classe COMPTE ceci:
public void COMPTE() { ... }
voila, je pense que c'était ca !
Je pense savoir d'ou viens ton erreur. Ton instanciation c'est ca mais c'est pas ca !
Tu ne passes pas de parametres lors de ton instanciation mais ta méthode attends un parametre. donc il faut que tu fasses ceci pour que ca marche:
COMPTE C1 = new COMPTE(num);
Si tu veux ne pas passer de parametre, tu doit rajouter dans ta classe COMPTE ceci:
public void COMPTE() { ... }
voila, je pense que c'était ca !
En gros c'est plus ou moins ça
il faut savoir que lorsque tu crée une classe, java crée par défaut un constructeur ne réclamant pas d'arguments
public COMPTE();
donc si tu crées un constructeur réclamant des arguments
public COMPTE(String arg);
mais que tu appelles le constructeur par défaut, l'instance est bien créée mais tes variables ne seront pas celles que tu attends.
voici un exemple avec les deux possibilités:
Dans le code ci dessous, les deux constructeurs sont implémentés avec une méthode permettant de donner une valeur à la variable numero;
public class COMPTE
{
public String numero;
public float solde;
public COMPTE(String $Num)
{
this.numero=$Num;
this.solde=0;
}
public COMPTE(){
this.numero = "";
this.solde = 0;
}
public void setCompte(String $Num){
this.numero = $Num;
}
public String getCompte(){
return this.numero;
}
public static void main(String args[])
{
COMPTE C1 = new COMPTE();
C1.setCompte("5");
System.out.println(C1.getCompte());
COMPTE C2 = new COMPTE("6");
System.out.println(C2.getCompte());
}
}
Un petit conseil si tu débutes, par convention, les noms des variables en java , habitues toi à les nommer en commençant par une minuscule ( private String leString). Ceci afin de faciliter la dfférenciation entre les classes et les variables.
Choubanimal :
"L'alcool est un ennemi", c'est lâche de fuir l'ennemi
il faut savoir que lorsque tu crée une classe, java crée par défaut un constructeur ne réclamant pas d'arguments
public COMPTE();
donc si tu crées un constructeur réclamant des arguments
public COMPTE(String arg);
mais que tu appelles le constructeur par défaut, l'instance est bien créée mais tes variables ne seront pas celles que tu attends.
voici un exemple avec les deux possibilités:
Dans le code ci dessous, les deux constructeurs sont implémentés avec une méthode permettant de donner une valeur à la variable numero;
public class COMPTE
{
public String numero;
public float solde;
public COMPTE(String $Num)
{
this.numero=$Num;
this.solde=0;
}
public COMPTE(){
this.numero = "";
this.solde = 0;
}
public void setCompte(String $Num){
this.numero = $Num;
}
public String getCompte(){
return this.numero;
}
public static void main(String args[])
{
COMPTE C1 = new COMPTE();
C1.setCompte("5");
System.out.println(C1.getCompte());
COMPTE C2 = new COMPTE("6");
System.out.println(C2.getCompte());
}
}
Un petit conseil si tu débutes, par convention, les noms des variables en java , habitues toi à les nommer en commençant par une minuscule ( private String leString). Ceci afin de faciliter la dfférenciation entre les classes et les variables.
Choubanimal :
"L'alcool est un ennemi", c'est lâche de fuir l'ennemi
de la meme facon pour le nom de tes classes met le premier caractere en majuscule et les autres en minuscules. c est mieux.
Salut,
Merci de tes remarques Joshua42, effectivement il y avait un problème dans le code source que j'avais diffusé. Mais c'était lié à une faute de frappe.
Mon vrai problème a été résolu en plaçant mes classe dans des fichiers .java séparé.
Merci et @+
Merci de tes remarques Joshua42, effectivement il y avait un problème dans le code source que j'avais diffusé. Mais c'était lié à une faute de frappe.
Mon vrai problème a été résolu en plaçant mes classe dans des fichiers .java séparé.
Merci et @+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question