P.O.O ?
topcoder
Messages postés
119
Statut
Membre
-
BloodyAngel Messages postés 1605 Statut Contributeur -
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;
}
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
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
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
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.
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.
{
this.x = x;
this.y = y;
}
en C++ ça aurait été this->x et this->y .