P.O.O ?

topcoder Messages postés 119 Statut Membre -  
BloodyAngel Messages postés 1605 Statut Contributeur -
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;
}

4 réponses

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
BloodyAngel Messages postés 1605 Statut Contributeur 403
 
En même temps y'a rien qui dit que c'est du java... :-/
0
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663 > BloodyAngel Messages postés 1605 Statut Contributeur
 
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
BloodyAngel Messages postés 1605 Statut Contributeur 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
BloodyAngel Messages postés 1605 Statut Contributeur 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
topcoder Messages postés 119 Statut Membre 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
BloodyAngel Messages postés 1605 Statut Contributeur 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