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 :

Question sur comportement méthode "clone"


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Par défaut Question sur comportement méthode "clone"
    Bonjour à tous,

    J'ai débuté depuis quelques jours Java, je suis le livre de C. Delannoy "Programmer en Java", 2nde édition.

    J'en suis au chapitre 6, sur la notion de clone, permettant de copie la référence d'un objet et non de pointer l'objet. J'ai reproduit l'exemple du livre, il s'agit d'affecter l'abscisse et l'ordonnée d'une position :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public class Point() {
       // constructeur
       public Point(int abs, int ord) {
        x = abs ;
        y = ord ;
       }
       // méthode de copie d'objet
       public Point copie() {
           Point p = new Point(x, y) ;
           p.x = x ;
           p.y = y ;
           return p ;
       }
    private int x, y ;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dans main de ma classe principale :
    Point p = new Point(5, 6) ;
    Point p3 = p.copie() ;
    p3 prend bien les valeurs de p, bien que je ne sache pas à ce stade comment vérifier qu'il s'agit bien d'une copie et non d'un pointeur

    Ma question est la suivante : dans la méthode copie(), pourriez-vous svp me dire à quoi servent les affectations p.x = x et p.y = y ?

    L'appel au constructeur Point p = new Point(x, y) ne fait-il pas cette initialisation ? J'ai enlevé les lignes p.x = x et p.y = y de la méthode et le résultat est le même.

    Merci si vous pouvez m'éclairer

    C. Tobini

  2. #2
    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
    Il n'y a rien à éclairer, tu as parfaitement raison. Les lignes p.x = x et p.y = y font la même chose que ce que le constructeur a déjà fait.

    Ça ne sert à rien de le faire deux fois comme ça. Vu qu'il y a déjà un constructeur qui s'en occupe, le mieux serait de virer ces deux lignes redondantes.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Par défaut
    Merci de la confirmation , bizarre, je ne sais pas si c'est une erreur ou volontaire.

Discussions similaires

  1. Question sur la méthode extends
    Par Djule dans le forum Langage
    Réponses: 4
    Dernier message: 04/02/2007, 16h01
  2. Question sur les méthodes abstraites
    Par nmathon dans le forum Delphi
    Réponses: 3
    Dernier message: 15/06/2006, 20h30
  3. [WebServices][axis] question sur la méthode service()
    Par Nycos62 dans le forum Services Web
    Réponses: 9
    Dernier message: 21/04/2005, 09h32

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