Vous devez comprendre la différence entre une classe et une instance de cette classe. Si vous voyez une voiture dans la rue, vous savez immédiatement que c'est une voiture même si vous ne pouvez pas voir quel modèle ou type. C'est parce que vous comparez ce que vous voyez avec la classe "voiture". La classe contient qui est similaire à toutes les voitures. Considérez-le comme un modèle ou une idée.
En même temps, la voiture que vous voyez est une instance de la classe "voiture" car elle a toutes les propriétés que vous attendez: il y a quelqu'un qui la conduit, elle a un moteur, des roues.
Donc, la classe dit "toutes les voitures ont une couleur" et l'instance dit "cette voiture spécifique est rouge".
Dans le monde OO, vous définissez la classe et à l'intérieur de la classe, vous définissez un champ de type Color
. Lorsque la classe est instanciée (lorsque vous créez une instance spécifique), la mémoire est réservée à la couleur et vous pouvez attribuer une couleur à cette instance spécifique. Ces attributs étant spécifiques, ils ne sont pas statiques.
Les champs et méthodes statiques sont partagés avec toutes les instances. Ils concernent des valeurs spécifiques à la classe et non une instance spécifique. Pour les méthodes, il s'agit généralement de méthodes d'assistance globales (comme Integer.parseInt()
). Pour les champs, ce sont généralement des constantes (comme les types de voitures, c'est-à-dire quelque chose où vous avez un ensemble limité qui ne change pas souvent).
Pour résoudre votre problème, vous devez instancier une instance (créer un objet) de votre classe afin que le runtime puisse réserver de la mémoire pour l'instance (sinon, différentes instances se remplaceraient mutuellement, ce que vous ne voulez pas).
Dans votre cas, essayez ce code comme bloc de départ:
public static void main (String[] args)
{
try
{
MyProgram7 obj = new MyProgram7 ();
obj.run (args);
}
catch (Exception e)
{
e.printStackTrace ();
}
}
// instance variables here
public void run (String[] args) throws Exception
{
// put your code here
}
La nouvelle main()
méthode crée une instance de la classe qu'elle contient (cela semble étrange mais puisqu'elle main()
est créée avec la classe plutôt qu'avec l'instance, elle peut le faire), puis appelle une méthode d'instance ( run()
).
C
. Mais ce ne sera pas très bon. Essayez d'utiliser Java comme il est censé être utilisé, en tant que langage orienté objet.