[java]demande explication à ce programme

Résolu/Fermé
Signaler
-
 domxaline -
Bonjour,

public class Points1
{
double x; char nom;
public Points1 (char nom,double x)
{
this.x=x;
this.nom=nom;
}
public void afficherCoord ()
{
System.out.println ("Le Point "+this.nom+" a pour abscisse "+x );
}
public double distance (Points1 M)
{
double d=this . x - M . x ;
return Math.abs (d);
}
public void deplacer (double dx)
{
this.x+=dx;<code>

}
}

public class TesterPoints1
{
public static void main (String[] args)
{
Points1 A=new Points1 ( 'A', 2.6);
A.afficherCoord ();
A.deplacer (1.1);
A.afficherCoord ();
Points1 B=new Points1 ( 'B', 1.54);
B.afficherCoord ();
System.out.println ("Distance entre A et B = "+A.distance (B));
}
}
</code>

Dans ce prg prenons la méthode

public double distance (Points1 M)
{
double d=this . x - M . x ;
return Math.abs (d);
}

il y a deux objets A et B, d'ou vient il ce M?

et expliquez moi svp la ligne suivante
double d=this . x - M . x ;//surtout this . x - M . x

Et prenons la méthode suivante

public void deplacer (double dx)
{
this.x+=dx;
}

dx signifie d*x n'est ce pas?

merci pour vos aides svp


2 réponses

Messages postés
16469
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
18 janvier 2022
2 938
Bonjour,

"il y a deux objets A et B, d'ou vient il ce M?"
Il ne faut pas tout confondre. Les objets A et B sont définis dans la méthode main de la classe TesterPoint1, alors que M est un paramètre de la méthode distance de la classe Point1. Lorsque dans le main tu fais A.distance(B) alors dans la méthode distance M c'est B, mais si tu fais B.distance(A) alors M ce sera A.

"et expliquez moi svp la ligne suivante double d=this.x - M.x"
Là on est toujours dans la méthode distance(M), donc si tu fais A.distance(B) cela donnera d = A.x - B.x, si tu fais B.distance(A) cela donnera B.x - A.x, A.distance(A) donne d = A.x - A.x, ou encore B.distance(B) donne d = B.x - B.x

"dx signifie d*x n'est ce pas?"
Non. C'est un paramètre totalement indépendant de "x", d'ailleurs il n' y a pas de "d" à multiplier, ce paramètre s'appelle "dx" mais il pourrait très bien s'appeler "cornichon" que ça ne changerait rien au programme. Ici "dx" renvoie à une sémantique de maths.
0
merci beaucoup j'ai comrpis
0