Constante en java

Bonzour tlm :slight_smile:

J’aimerais savoir si il était possible de définir des constantes qui pourraient etre appelées dans n’importe quelle class d’un projet ?

Merci :slight_smile:

Définis une classe “Constante” dans laquelle tu mets toutes tes constantes, ensuite tu pourras les appeler par Constante.nomdetaconstante. Je ne pense pas qu’il y ait de moyens plus simples.

Oui c vrai c une idée simple et malicieuse :wink:
Juste le petit pb c que c lourd de faire une classe pour ne mettre que 3 ou 4 variables.

Oui

exemple :


class Machin {
  public static final int BIDULE = 4;
  ...
}

Et pour l’avoir : Machin.BIDULE.

Voilà.

oui, c’est comme ça qu’on fait les constantes en Java, “public static final…”
Si tu ne veux pas spécifier le nom de classe, c’est import static en Java 5.
:slight_smile:

Mais je ne le conseille pas, c’est vraiment pas une syntaxe objet. :confused:

oui c’est possible.

  1. Tu crées une interface nommée Constantes
    exemple :

public interface Constantes {

	/** hauteur de la case */    
    final static int HC = 40;
    
    /** largeur de la case */
    final static int LC = 40;
	
	/** hauteur du plateau */
	final static int HP = 320;
	
	/** largeur du plateau */
	final static int LP = 320;
    
    /** constante pour symboliser le joueur1 */
    final static int JOUEUR1 = 1;
    
    /** constante pour symboliser le joueur2 */
    final static int JOUEUR2 = -1;
	
	/** constante pour symboliser le joueur humain */
	final static int HUMAN = 2;
	
	/** constante pour symboliser le joueur ordinateur */
	final static int COMPUTER = 3;
	
    /**  pour symboliser le joueur1 à l'écran */
    final static char P1='X';

    /** constante pour symboliser le joueur2 à l'écran */
    final static char P2='O';

    /** constante pour symboliser une case sans pions */
    final static String CASE_INACTIVE = ".";
    
    /** constante qui va définir la taille de la grille */
    final static int SIZE = 8;
      
    /** Tableau qui contient toutes les directions pour la recherche des coups possibles */
    final static String[] TAB_DIR = { "Nord", "NordEst", "Est", "SudEst", "Sud", "SudOuest", "Ouest", "NordOuest" }; // tab_cell de directions (8 directions)
    
    /** tableau qui contient les valeurs de toutes les cases pour l'évaluation de la grille*/
    final static int[][] EVAL = { { 100, -10, 11, 6, 6, 11, -10, 100},
             { -10, -20,  1, 2, 2, 1, -20, -10},
             {  10,   1,  5, 4, 4, 5,   1,  10},
              {   6,   2,  4, 2, 2, 4,   2,   6},
             {   6,   2,  4, 2, 2, 4,   2,   6},
             {  10,   1,  5, 4, 4, 5,   1,  10},
             { -10, -20,  1, 2, 2, 1, -20, -10},
               { 100, -10, 11, 6, 6, 11,-10, 100} };
}

puis dans une autre classe Java tu "implémentes" cette interface

et tu pourras accéder librement à ces variables.

Une chose importante:
si tu veux à changer une constante :

  1. tu dois recompiler ton fichier Constantes.java
  2. tu dois recompiler ton fichier classe qui "implémente" tes constantes pour mettre à jour ton programme.

Bien à toi.