Rechercher : dans
Par :

JAVA - Impossible d'instancier une classe !

Dernière réponse le 23 oct 2002 à 15:13:01 S.BOURGIN, le 22 oct 2002 à 12:03:00 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « JAVA Impossible d'instancier une classe ! » dans :
Voir le contenu d'un fichier .jar VoirRien de plus facile que de voir ce que contient un fichier .jar: Renommez-le en .zip et ouvrez-le ! Si vous voulez voir ce que contiennent les programmes java compilés .class, vous devrez utiliser un décompilateur Java tel que JAD:...
Java - Les objets VoirLa création d'objets Un objet est une instance de classe, la création d'objets s'appelle donc l'instanciation. Cette instanciation se fait grâce à l'opérateur new suivi du nom de la classe à instancier et de parenthèses contenant les paramètres...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
Les classes Java VoirLa notion d'objet Le langage Java intègre fortement le concept objet, il s'agit donc d'un langage orienté objet (LOO). Le terme langage orienté objet est plus qu'une simple appellation de plus pour désigner un type de langage, il...

1

BigFlo93, le 22 oct 2002 à 14:24:59

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 !

Répondre à BigFlo93

2

choubaka, le 23 oct 2002 à 08:14:05

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

Répondre à choubaka

3

Joshua42, le 23 oct 2002 à 08:48:11

De la meme facon pour le nom de tes classes met le premier caractere en majuscule et les autres en minuscules. c est mieux.

Répondre à Joshua42

4

S.BOURGIN, le 23 oct 2002 à 12:36:41

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 @+

Répondre à S.BOURGIN

5

 choubaka, le 23 oct 2002 à 15:13:01

De rien, de rien

Choubanimal : 
"L'alcool est un ennemi", c'est lâche de fuir l'ennemi

Répondre à choubaka
Collection CommentÇaMarche.net