IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Liste d'initialisation en java ?


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Par défaut Liste d'initialisation en java ?
    Bonjour on m'a parlé des listes d'initialisation en java.
    Je vous avoue que je ne vois pas ce que c'est...
    En c++ oui, c'est quand on appelle directement le constructeur parent dans le constructeur enfant via la syntaxe de l'héritage (si je ne me trompe pas).

    Par contre en java je ne vois pas du tout à quoi cela se rapporte...
    Quelqu'un pourrait-il m'en dire d'avantage ?

    Edit:
    en c++:
    ...En comparaison, C++ possede la liste d'initialisation du constructeur qui declenche l'initialisation avant d'entrer dans le corps du constructeur. Voir Thinking in C++, 2nde edition.

  2. #2
    Membre expérimenté Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Par défaut
    bonjour,

    une liste d’initialisation peut être utilisée pour instancier
    et initialiser un tableau en une seule étape
    Les valeurs sont délimitées par des accolades et séparées
    par des virgules

    Exemple:

    int[] units = {147, 323, 89, 933, 540, 269, 97, 114, 298, 476};

    note que lorsque une liste d’initialisation est utilisée :

    - L’opérateur new n’est pas utilisé
    - La taille n’est pas spécifiée
    - La taille du tableau est déterminée par le nombre d’items dans la liste d’initialisation

    en gros, une liste d’initialisation ne peut être utilisée qu’à
    la déclaration d’un tableau

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Par défaut
    Merci pour ton intervention tux
    mais je connaissais ceci.

    Je me suis mal exprimé j'ai trouvé ça sur le net:
    ...En comparaison, C++ possede la liste d'initialisation du constructeur qui declenche l'initialisation avant d'entrer dans le corps du constructeur. Voir Thinking in C++, 2nde edition.
    Je pense que c'est de ça qu'on m'a parlé mais à la sauce java certainement.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Par défaut
    Ha j'ai l'impression que j'ai trouvé.
    Je pense que c'est ça dont on m'a parlé :

    par ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    JPanel test = new JPanel();
    {
          test.setLayout(new BorderLayout(4,4));
          test.add(stuff1,BorderLayout.NORTH);
          test.add(stuff2,BorderLayout.SOUTH);
          test.setBorder(BorderFactory.createEmptyBorder(3,3,3,3));
    }

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Les listes d'initialisation au niveau du contructeur n'existent pas en Java. Et c'est pas terrible comme maniere de faire un contructeur de toute facon et a mon sens, ca nuit plutot a la lisibilite du code C++.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Citation Envoyé par bouye Voir le message
    Les listes d'initialisation au niveau du contructeur n'existent pas en Java. Et c'est pas terrible comme maniere de faire un contructeur de toute facon et a mon sens, ca nuit plutot a la lisibilite du code C++.
    Je ne suis pas d'accord. C'est une manière propre au langage C++ de séparer l'initialisation d'attributs du reste du code du constructeur.

    C'est une question d'habitude.

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Alp Voir le message
    C'est une manière propre au langage C++ de séparer l'initialisation d'attributs du reste du code du constructeur.
    Heu... Petite question parce que je suis curieux !

    Ca fait quoi et cela ressemble à quoi une liste d'initialisation en C++ ?

    a++

  8. #8
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Personne
    {
      std::string nom;
      int age;
    
      public :
      Personne(const std::string& nom_, int age_) : nom(nom_), age(age_)
      { 
        // reste du constructeur
      }
    };

    Ce qui est en gras

  9. #9
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Alp Voir le message
    Ce qui est en gras
    Ok je connaissait vaguement cela mais j'ignorais que cela s'appelait comme cà !


    Mais bon sincèrement je ne vois pas vraiment de différence avec une initialisation dans le constructeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class Personne{
    	String nom;
    	int age;
     
    	public Personne (String nom, int age) {
    		this.nom = nom;
    		this.age = age;
    	}
    }

    Dans les deux cas il n'y a pas de quoi fouetter un chat

    a++

  10. #10
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Oui, c'est une question d'habitude à mon avis, comme je l'ai dit

  11. #11
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Essaie avec une classe disposant d'entre 10 et 30 membres comme ca...
    Bref pour separer une initialisation des membres du reste du constructeur, un bon // est largement suffisant...
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  12. #12
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Citation Envoyé par bouye Voir le message
    Essaie avec une classe disposant d'entre 10 et 30 membres comme ca...
    Hé bien ? Quel est le problème ?

    Tu peux dessiner une forme de coeur pour ta liste d'initialisation avec autant de membres à initialiser, c'est bien

    Non sérieusement, c'est juste une solution alternative, chacun ses goûts. Je doute qu'il soit possible de trouver un argument contre cette solution. Des parenthèses au lieu d'un '=' c'est vraiment pareil

    Par contre, pour les attributs à initialiser pour lesquels il faut un pré-traitement, on est obligés de passer par l'initialisation classique avec le '=', mais ça ne gêne toujours en rien l'utilisation des listes d'initialisation.

  13. #13
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Alp Voir le message
    Des parenthèses au lieu d'un '=' c'est vraiment pareil
    Oui tout à fait d'accord : c'est plus une question de syntaxe qu'une fonctionnalité en tant que tel...

    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/01/2015, 22h41
  2. Liste d'initialisation C++
    Par three minute hero dans le forum BOUML
    Réponses: 7
    Dernier message: 08/10/2007, 10h18
  3. listes et tab en java?
    Par scolopendra dans le forum Langage
    Réponses: 5
    Dernier message: 21/05/2007, 16h18
  4. [Débutant]Problème initialisation applet JAVA, jBoss 4.0.4
    Par Widiwi dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 18/05/2007, 16h05
  5. [syntax] liste d'initialisation et heritage
    Par ZaaN dans le forum C++
    Réponses: 1
    Dernier message: 12/12/2006, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo