non pas devant les classes mais devant les méthodes.
Et si il y en faut devant le main c'est que la JVM lance ton programme en appelant taclasse.main(param);
Bon static c'est quoi concraitement ben c'est un mot clé qui sert à définir qu'une variable de classe ou une méthode est dans le contexte statique et non objet
static <=> objet
les variables objets sont copié à chaque instance de l'objet, les variables statiques n'existe qu'en un seule exemplaire pour toute la classe.
et les méthode statique n'ont pas besoin qu'on instancie un objet. donc on peu les utilisé directement avec le nom de la classe
le contexte objet peut utilisé les variables et les méthodes du contaxte statique mais pas l'inverse ..
Une variable statique ne va pas appartenir à l'instance de ton objet lorsque tu l'instancie... pour reprendre l'exemple ci dessus:
public class maClasse {
static int nbrClasse = 0;
public int nbrDeChameau = 4;
public void maClasse () {
this.nbrClasse ++;
}
}
maClasse objet = new maClasse();
//on accède à une variable non statique de la manière suivante:
System.out.println(objet.nbrChameau); //affiche 4
//on peut accèder à une variable statique de la manière suivante:
System.out.print(maClasse.nbrClasse); // affiche 0
Elle ne va rien utiliser comme classe. Si "nbrclasse" est bien une variable static, elle est accessible directement.
Tu peux avoir 0, 1, 2 ou plus d'instances d'une même classe, le résultat est toujours le même ; "taclasse.afficher()" donnera un résultat si afficher() est aussi static. Il faut faire la différence, un objet est une instance de la classe.
Pour les membres non static de la classe, tu as besoin d'un instance de la classe, donc d'un objet, pour l'appeler.
Pour les membres static, tu as besoin de la classe pour l'appeler, peu importe qu'il y ait ou non des instances en cours.
Les variables d'instance sont des variables propres à un objet. Il est possible de définir une variable de classe qui est partagée entre toutes les instances d'une même classe : elle n'existe donc qu'une seule fois en mémoire. Une telle variable permet de stocker une constante ou une valeur modifiée tour à tour par les instances de la classe. Elle se définit avec le mot clé static.
- Edité par ibirifarid2 17 octobre 2017 à 16:35:35
pour etre plus claire ta classe afficher ne deppend pas de tes instance de la classe (ici c1 et c2) donc en fait ta methode static (afficher) n'utilise pas de variable d'instance (d'attribut) donc si afficher affiche bonjour elle affichera bonjour des que tu tape
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Pas d'aide concernant le code par MP, le forum est là pour ça :)