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

avec Java Discussion :

StringBuffer creation d'objets


Sujet :

avec Java

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 190
    Points : 76
    Points
    76
    Par défaut StringBuffer creation d'objets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    StringBuffer chaine1 = new StringBuffer("iut");
    StringBuffer chaine2 = chaine1;
    StringBuffer chaine3 = new StringBuffer("iut");
    Bonjour dans ce bout de code ci dessus, je ne comprends pas pourquoi qu'il y a création de trois objets . J'étais sûr et certain que seul deux objets sont crées mais en fait il y en a trois. Es ce que quelqu'un pourrait nous expliquer pourquoi ?

    Bien à vous

  2. #2
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Salut,

    Il y a la chaîne de caractère "iut" et les deux StringBuffer instanciés

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Points : 422
    Points
    422
    Par défaut
    Écris le sous cette forme pour mieux le comprendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // Déclaration des instances
    StringBuffer chaine1;
    StringBuffer chaine2;
    StringBuffer chaine3;
     
    // Attribution des valeurs
    chaine1 = new StringBuffer("iut");
    chaine2 = chaine1;
    chaine3 = new StringBuffer("iut");

  4. #4
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Citation Envoyé par peuplier Voir le message
    Bonjour dans ce bout de code ci dessus, je ne comprends pas pourquoi qu'il y a création de trois objets . J'étais sûr et certain que seul deux objets sont crées mais en fait il y en a trois. Es ce que quelqu'un pourrait nous expliquer pourquoi ?
    Qu'est ce qui te fait dire qu'il y a trois objets créés?

    A première vue, Je n'en vois moi aussi que deux. chaine1 et chaine2 faisant bien référence au même objet.

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    À la limite, comme dit Heimdal, on pourrait aussi compter le littéral String "iut", qui est instancié au chargement de la classe.
    Ce qui nous fait alors un objet String et deux objets StringBuffer.

    Mais c'est un peu tiré par les cheveux, il faudrait qu'on se mette d'accord sur comment on compte les "créations d'objets".
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 190
    Points : 76
    Points
    76
    Par défaut
    Bonjour et merci pour vos réponses rapides. Je n'ai pas pu répondre plus tôt, j'étais en conger, c'est des choses qui m'arrivent aussi parfois.....

    Citation Envoyé par Uther Voir le message
    Qu'est ce qui te fait dire qu'il y a trois objets créés?

    A première vue, Je n'en vois moi aussi que deux. chaine1 et chaine2 faisant bien référence au même objet.

    Bien, ce bout de code fait partie d'une liste d'exercices sur java, où une liste de td que nous devions faire, en vue de préparer la certification scjp, tout au moins la 310-065. Nous avions un questionnaire, puis des réponses, des fois avec explications, des fois sans explications. D'où ce message posté.
    Passer la certification 310-065 ne veut pas forcément dire qu'on est plus intelligent, où meilleur programmeur, sinon ça se saurait depuis longtemps. Il se trouve que pour un programmeur avec un an d'expérience une certification l'aide beaucoup à comprendre les tenants et aboutissants du langage java. Et de ce point de vue ça aide énormément à comprendre le modèle objet. Voilà le sens de mon post.

Discussions similaires

  1. Creation d'objet a partir d'un fichier - espace de nom -
    Par LLEJEUNE1 dans le forum Général Python
    Réponses: 2
    Dernier message: 05/04/2006, 12h13
  2. probleme de creation d'objet cristal report
    Par sam_12_3 dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 03/04/2006, 13h58
  3. creation d'objet de classe a partir de string
    Par mencaglia dans le forum C++
    Réponses: 1
    Dernier message: 14/03/2006, 09h56
  4. [debutant] Creation d'objet au fur et a mesure
    Par jamesleouf dans le forum Débuter
    Réponses: 8
    Dernier message: 14/03/2006, 00h06
  5. Lancer des shell unix pour creation d'objet ORACLE
    Par sygale dans le forum Administration
    Réponses: 6
    Dernier message: 27/10/2004, 18h03

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