Initialisations de l'état des objets

images/whitebelt.png

Une autre version de la classe avec un constructeur. 

public class Versement {
   double valeur ;  // variable membre
   String monnaie ;
   long heureOperation = System.currentTimeMillis();

   // Il y a trois zones dans le code d'un constructeur
   Versement(double val, String monn) {
      // zone 1  1
      // zone 2 2
      this.valeur = val ; 3
      this.monnaie = monn ;
   }

   // c'est possible : mais en général il est peu pertinent d'avoir
   // un code de test  dans la classes elle-même
    public static void main(String[] args) {
        Versement op = new Versement(10.99, "GBP") ;
    }
}

1

(sera expliqué ultérieurement -la zone 1 peut être explicite-)

2

zone 2 : des initialisations de variables membres sont exécutées (zone toujours implicite dans le code du constructeur)

3

début de zone 3 : instructions ….

Ici la variable membre heureOperation est initialisée chaque fois que l’on crée un nouvel objet (et ceci se produit dans cette "zone 2").

Les variables membres peuvent être:

Ces initialisations peuvent être modifiées par des affectations explicites présentes dans le code du constructeur.

Notons également que l’initialisation par défaut à zéro peut correspondre à une volonté de laisser un membre sans valeur significative. Si, par exemple, on ajoute un champ de type String commentaire à la classe Versement cette valeur par défaut (nous verrons qu’elle s’appelle en réalité null) indique que le champ n’est pas présent -on peut ainsi avoir des membres facultatifs dans un objet-