[java] j'ai besoin explication de ce prg

Résolu
domxaline -  
 domxaline -
Bonjour,
voilà mon prg orgine:

public class Points2
{
public double abs;
public double ord;
public static int varStat;

public void initialiser ( double x, double y )
{
abs = x; ord = y;
}

public static double calculDistance (Points2 M, Points2 N)
{
double distance;
distance = Math.sqrt ( (N.abs - M.abs) * (N.abs - M.abs) + (N.ord - M.ord) * (N.ord - M.ord) );
return distance;
}

public double calculDistance (Points2 P)
{
double distance;
distance = Math.sqrt( (this.abs - P.abs) * (this.abs - P.abs) + (this.ord - P.ord) * (this.ord - P.ord) );
return distance;
}
}

public class Tester6Points2
{
public static void main (String [ ] args )
{
Points2 A = new Points2 ( );
Points2 B = new Points2 ( );
A.initialiser (2,7);
B.initialiser (3,13);
double longeur = A.calculDistance (B);
System.out.println("distance entre A et B =" + longeur );
}
}


je ne comprend pas,la partie qui suit:

public static double calculDistance (Points2 M, Points2 N)
{
double distance;
distance = Math.sqrt ( (N.abs - M.abs) * (N.abs - M.abs) + (N.ord - M.ord) * (N.ord - M.ord) );
return distance;
}

public double calculDistance (Points2 P)
{
double distance;
distance = Math.sqrt( (this.abs - P.abs) * (this.abs - P.abs) + (this.ord - P.ord) * (this.ord - P.ord) );
return distance;


la méthode calculDistance avec static:
N est B
M est A est ce que c'est ça?

la méthode calculDistance sans static:
this est A
P est B est ce que c'est ça ?

veuillez m'aider svp, je confonds tout

A voir également:

4 réponses

luckydu43 Messages postés 4259 Date d'inscription   Statut Membre Dernière intervention   1 057
 
Bonjour !

Voyons ensemble :

Lorsque la méthode initialiser() de ta classe Point2 est appelée, 2 valeurs sont prises en paramètre et vont "remplir" les variables abs et ord.
Ces valeurs sont inhérentes à l'objet Points2 (instance de la classe). Cela signifie que this.abs va appeler le paramètre abs de l'objet Points2 (et pareil pour this.ord).

Si la méthode est statique, elle ne peut accéder aux paramètres de l'objet. Tes classes sont donc bien paramétrées;-)

Dans ta première méthode :
a est M, b est N.

Dans la seconde :
a est this (il d'agit de l'objet dont tu appelle la méthode dans le main =
A.calculDistance (B);

b est P

D'ailleurs, voici ta classe telle qu'elle devrait être ;-)
public class Points2 {
	private double abs;
	private double ord;

	/*
	 * Constructeur de la classe. Au moment de la création du point, 
	 * renseigner les valeurs abs et ord
	 */
	public Points2(double abs, double ord) {
		super();
		this.abs = abs;
		this.ord = ord;
	}

	/*
	 * Getters
	 */
	public double getAbs() {
		return abs;
	}
	
	public double getOrd() {
		return ord;
	}

	/*
	 * Setters
	 */
	public void setAbs(double abs) {
		this.abs = abs;
	}
	
	public void setOrd(double ord) {
		this.ord = ord;
	}

	/*
	 * La formule de calcul de la distance entre deux points est :
	 *              |-----------------\
	 * dist(a,b) = \|(xb-xa)²+(yb-ya)²
	 */
	/**
	 *  Méthode statique permettant de calculer la longueur
	 *  entre 2 points placés en paramètre
	 * @param M
	 * @param N
	 * @return
	 */
	public static double calculDistance(Points2 M, Points2 N) {
		return Math.sqrt((N.abs - M.abs) * (N.abs - M.abs)
				+ (N.ord - M.ord) * (N.ord - M.ord));
	}

	/**
	 * Méthode permettant de calculer la longueur entre ce point
	 * et le point placé en paramètre
	 * @param P
	 * @return
	 */
	public double calculDistance(Points2 P) {
		return Math.sqrt((this.abs - P.abs) * (this.abs - P.abs)
				+ (this.ord - P.ord) * (this.ord - P.ord));
	}
}



Voilà !
Si tu as d'autres questions, nous sommes à disposition !

Et bonne continuation dans la découverte de ce merveilleux langage qu'est Java !

Luc
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

"bonne continuation dans la découverte de ce merveilleux langage qu'est Java"
Pour information, cela fait 6 ans que domxaline "découvre" le Java.
Je crois qu'à un moment il faut savoir être lucide et passer à autre chose...
0
domxaline > KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention  
 
même s'il fallait toute ma vie,
je le ferai, en tant que je l' apprend.
merci de m'avoir répondu
0
domxaline
 
Bonjour,
pourquoi vous dîtes ça
cette question est trop facile pour vous, pas pour moi
je mêle mes pinceaux
dîtes simplement est ce que je suis raison ou pas
0
luckydu43 Messages postés 4259 Date d'inscription   Statut Membre Dernière intervention   1 057
 
Et sans la javadoc, voici le main :
public class Tester6Points2 {
	public static void main(String[] args) {
		Points2 A = new Points2(2, 7);
		Points2 B = new Points2(3, 13);
		double longueur = A.calculDistance(B);
		System.out.println("distance entre A et B =" + longueur);
	}
}
0
domxaline
 
merci beaucoup
0
luckydu43 Messages postés 4259 Date d'inscription   Statut Membre Dernière intervention   1 057
 
N'ayant pas lu le second post, je tiens à m'excuser si le ton de mon premier post était trop condescendant. Je n'ai absolument pas cette idée en tête !
J'ai commencé comme vous, et je comprend très bien les difficultés d'apprentissage de ce langage. Certes, depuis, mon niveau s'est quelque peu amélioré, mais je ne vous rabaisse pas, bien au contraire.
D'ailleurs, les 2 classes fournies en exemple vous permettront d'appréhender quelques subtilités : Constructeurs, getters/setters, private... tout cela est lié à la sécurité du code (même si la véritable sécurité au sens propre commencera un peu plus tard dans l'apprentissage).
La Javadoc (/** * * **/) est aussi importante ! On peut plus facilement comprendre un code commenté ;-)
Et il faut limiter le nombre de variables (certes, Java inclus le Garbage Collector, permettant de supprimer les objets obsolètes au fil de l'exécution du programme, mais c'est plus pour une question de lisibilité).

Si vous avez des questions au fil du temps, vous pouvez toujours vous tourner vers le forum, quelqu'un aura certainement les compétences nécessaires pour vous aider.
En vous souhaitant bon courage pour la suite !
Bonne soirée
0