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 :

Instancier un objet


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Par défaut Instancier un objet
    Bonjour,

    quelle sont les differents possibilité (en java) pour instancier un objet par exemple un objet de la classe JButton ou la classe String.

    merci pour la réponse

    A+

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par zpico Voir le message
    quelle sont les differents possibilité (en java) pour instancier un objet par exemple un objet de la classe JButton ou la classe String.
    Ça c'est de la question vague ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JButton totoLeBouton = new JButton("Il faut prendre l'habitude de regarder la Javadoc"); // Par exemple ;)
    Cf. JButton, String
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonsoir,

    Citation Envoyé par Robin56 Voir le message
    Ça c'est de la question vague ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JButton totoLeBouton = new JButton("Il faut prendre l'habitude de regarder la Javadoc"); // Par exemple ;)
    Cf. JButton, String
    Vague? Je dit que c'est plus que ça, l'instanciation d'un objet se trouve toujours sur la première partie d'un tutoriel Java.
    Tu peux utiliser new, créer directement à partir de ses valeurs (ex: String, tableau, ...), utiliser la méthode forName de Class aussi.
    Bref,

    A+.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 8
    Par défaut
    J'attire votre attention sur la classe String. L'instanciation d'objets de cette classe et la gestion en mémoire de ceux-ci sont différentes de tout autre classe.

    Un objet String est non modifiable (immuable). Je parle de l'objet et non pas de sa référence. Si vous allez consulter cette classe, vous verrez qu'elle est marquée "final".

    Ce qui est équivalant à String s = new String("abc");
    Mais Java permet de raccourcir l'instanciation de cette classe.

    Pour le moment nous avons 1 variable référence s et 1 objet String en mémoire ayant pour valeur "abc"

    Nous avons maintenant 2 variables références s et s2 et toujours 1 objet en mémoire ayant pour valeur "abc".
    Pour le moment, il y a pas de différence avec l'instanciation d'objet de classe "classique".

    Voyons l'étape suivante :
    Comme l'objet String "abc" n'est pas modifiable, un autre objet String "abcdef" est créé.
    Et les variables s et s2 ne font plus référence au même objet.
    Nous avons maintenant 2 variables références s et s2 et 2 objets String, "abc" et "abcdef" là où une autre classe "classique" aurait modifié l'objet sans en créer un nouveau.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2010
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 172
    Par défaut
    Citation Envoyé par Ahamkara Voir le message
    J'attire votre attention sur la classe String. L'instanciation d'objets de cette classe et la gestion en mémoire de ceux-ci sont différentes de tout autre classe.

    Un objet String est non modifiable (immuable). Je parle de l'objet et non pas de sa référence. Si vous allez consulter cette classe, vous verrez qu'elle est marquée "final".

    Ce qui est équivalant à String s = new String("abc");
    Mais Java permet de raccourcir l'instanciation de cette classe.

    Pour le moment nous avons 1 variable référence s et 1 objet String en mémoire ayant pour valeur "abc"

    Nous avons maintenant 2 variables références s et s2 et toujours 1 objet en mémoire ayant pour valeur "abc".
    Pour le moment, il y a pas de différence avec l'instanciation d'objet de classe "classique".

    Voyons l'étape suivante :
    Comme l'objet String "abc" n'est pas modifiable, un autre objet String "abcdef" est créé.
    Et les variables s et s2 ne font plus référence au même objet.
    Nous avons maintenant 2 variables références s et s2 et 2 objets String, "abc" et "abcdef" là où une autre classe "classique" aurait modifié l'objet sans en créer un nouveau.
    OK merci tout le monde

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Re,

    Citation Envoyé par Ahamkara Voir le message
    Voyons l'étape suivante :
    Comme l'objet String "abc" n'est pas modifiable, un autre objet String "abcdef" est créé.
    C'est pour ça qu'on utilise un StringBuilder si on va manipuler un String fréquemment .

    A+.

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Ahamkara Voir le message
    Ce qui est équivalant à String s = new String("abc");
    Mais Java permet de raccourcir l'instanciation de cette classe.
    Pas tout-à-fait... Java fait un traitement particulier sur les chaînes littérales comme "abc" et les instancie au chargement des classes si besoin, oui...

    Mais new String("abc") en instancie encore une autre. Ça fait deux chaînes et non pas une :
    - la chaîne "abc" qui a été instanciée au chargement parce que c'est une chaîne littérale
    - la chaîne qui a été instanciée par l'appel du constructeur new String().

    Ce n'est pas équivalent, et ce n'est pas un raccourci. L'appel de new String() n'est pas utile, mais si on le fait, ça fait bel et bien quelque chose de nouveau.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Citation Envoyé par Ahamkara Voir le message
    Un objet String est non modifiable (immuable). Je parle de l'objet et non pas de sa référence. Si vous allez consulter cette classe, vous verrez qu'elle est marquée "final".
    Le final n'a aucun rapport avec l'immuabilité des String. Le final sur une classe indique juste que cette classe ne peut pas être héritée.
    En faite il y a quand même un rapport. Si String pouvais être héritée, alors on pourrai écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String s1 = new StringPerso("hello")
    String s2 = s1;
    s2.replaceAll("hello", "salut");// replaceAll est redéfinie pour modifier le contenu du tableau de char représentant la chaine (private final char value[];).
    System.out.println(s1);
    ==> salut
    Bon il est possible de faire ce genre de "connerie" en utilisant la reflexion (setAccessible(true) sur le field value). Mais à partir du moment où on touche à ça, on doit savoir ce que l'on fait...

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

Discussions similaires

  1. [Reflection] Instancier un objet
    Par bl@st dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 28/10/2008, 11h09
  2. [POO] Instancier un objet avec le nom de la classe
    Par shinchun dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2006, 13h44
  3. Réponses: 4
    Dernier message: 08/03/2006, 19h07
  4. Réponses: 6
    Dernier message: 18/01/2006, 16h26
  5. instancier un objet Excel
    Par RobinNono dans le forum ASP
    Réponses: 1
    Dernier message: 13/12/2005, 15h51

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