P.O.O ?

topcoder Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -  
BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut tous le monde ,
je veux savoir qu'elle est la différence entre les deux méthodes suivantes :

public Point()
{
x = 0;
y = 0;
}

public Point(double x, double y)
{
this.x = x;
this.y = y;
}
Configuration: Windows XP
Firefox 3.0.15

4 réponses

  1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    c'est comme si tu avais fait
    public Point()
    {
    this.x = 0;
    this.y = 0;
    }
    (pour que tu voies la ressemblance avec l'autre Point(int, int) )

    c'est ce qu'on appelle des constructeurs. Ils sont appelés lorsqu'un nouvel objet est instancié (avec new).
    D'ailleurs le premier, celui que j'ai copié, est dans ce cas inutile car java prévoit un constructeur par défaut qui fait la même chose (mettre les variables de l'objet à 0, et les références à NULL)

    Point point1 = new Point(); // nouvel objet Point, avec x et y à 0
    Point point2 = new Point(5, 2); //nouvel objet de type Point avec x=5 et y=2
    1
    1. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403
       
      En même temps y'a rien qui dit que c'est du java... :-/
      0
      1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663 > BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Oui c'est une sorte de pari que j'ai fait. Mais sinon ça aurait été avec beaucoup de probabilité du C++, mais :

        {
        this.x = x;
        this.y = y;
        }

        en C++ ça aurait été this->x et this->y .
        0
      2. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403 > Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention  
         
        Yes :o) mais ça aurait été écrit pareil en C# ;o)
        0
  2. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    Hello,
    visiblement, les variables x et y de la première méthode sont déclarées en globale puisqu'elles ne le sont pas dans la méthode. De plus, la méthode ne reçoit rien et ne renvoie rien. Enfin, rien n'indique que cette méthode appartient à une classe.
    La seconde méthode reçoit deux paramètres doubles, et elle utilise ces deux paramètres pour remplacer les variables de la classe à laquelle elle appartient.
    0
  3. topcoder Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   10
     
    Merci pour l'explication,mais ce que je veux savoir précisément c'est ce que la methode :
    public Point()
    {
    x = 0;
    y = 0;
    }

    est un modificateur ou quoid ?
    0
  4. BloodyAngel Messages postés 1487 Date d'inscription   Statut Contributeur Dernière intervention   403
     
    Bin c'est difficile à dire en ne voyant que ça.
    Vu que la fonction s'appelle "Point" et qu'elle travaille sur x et y, j'imagine qu'il s'agit d'une fonctionne qui initialise des coordonées à (0,0).
    0