Rechercher : dans
Par :

Tableau d'objet en java

Dernière réponse le 15 avr 2008 à 21:39:02 lafa73, le 15 avr 2008 à 13:40:02 
 Signaler ce message aux modérateurs

Bonjour,
voila je voudrais stoker des point dans un tableau statique
voila ce que j ai fait
class Point {
double x;
double y;
public Point (double x, double y){
this.x = x;
this.y =y;
}

dans la classe main j ai fait
point p1 = new point()
point p2 = new point()
static tab [ ] = {p1,p2}
tab [1] = p1;
tab[2] = p2
mais ca ne marche pas
y a t il quelqu un qui peut m aider svp

Configuration: Windows XP
Firefox 2.0.0.13

Meilleures réponses pour « tableau d'objet en java » dans :
Inverser les éléments d'un tableau -Récursivité- VoirVoici une procédure récursive qui permet d’inverser les éléments d’une partie d’un tableau compris entre la position p et n : Procedure Inverser (Var t : Tab; p, n : Integer); Var aux : Real; Begin If p < n Then ...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
Javascript - l'objet Array VoirLes particularités de l'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si...
Les classes Java VoirLa notion d'objet Le langage Java intègre fortement le concept objet, il s'agit donc d'un langage orienté objet (LOO). Le terme langage orienté objet est plus qu'une simple appellation de plus pour désigner un type de langage, il...

1

reltak, le 15 avr 2008 à 13:55:11

Bonjour,

alors pourquoi static ??

Tout d'abord il faut que tu dises que ton tableau va accueillir des Points.

la bonne syntaxe est

Point tab[] = { p1, p2 };


Voilà
Reltak.

Répondre à reltak

2

kij_82, le 15 avr 2008 à 14:08:41

Bonjour,

En plus, puisqu'il s'agit d'un tableau, il faut lui donner une longueur à l'initialisation.
Et puis tu fais un constructeur avec deux paramètres dans ta classe Point mais tu ne l'utilise pas.
Tes points ne sont donc pas rempli.

Voilà un code plus propre et fonctionnel :

point p1 = new Point(12,45)
point p2 = new Point(45,12)
static Point[] tab = new Point[2];
tab[0] = p1;
tab[1] = p2 


Tout ce qui est en gras est à ne pas oublier. Dans un tableau le premier indice est toujours 0, et non 1.

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

3

lafa73, le 15 avr 2008 à 16:08:00

Merci pour votre réponse mais je tien a vous dire que voila le resultat que j obtien
Point@360be0
Point@45a877

je ne comprend rien en ce resultat y as t il quelqu un qui peut m aider
merci

Répondre à lafa73

4

mo, le 15 avr 2008 à 16:21:22

Bonjour,

C'est parce que tu dois implémenter la méthode toString dans ta classe Point sinon elle affichera les adresses mémoires comme tu peux le voir.

public String toString() {
/* ce que tu veux afficher du moment que ça retourne un String */
}

Répondre à mo

5

lafa73, le 15 avr 2008 à 16:26:32

Mais dois je implementer cette methode juste car je manipule un objet ou bien meme avec les variables

Répondre à lafa73

6

mo, le 15 avr 2008 à 16:38:02

C'est parce que tu utilises une classe Point qui n'est pas une classe propre à java mais une classe que tu as toi-même créée.

De base, une classe n'implémente cette méthode meme si les attributs de celle-ci utilisent des types primitifs (int, long, double, float, char...)

Répondre à mo

7

kij_82, le 15 avr 2008 à 16:39:39

En java si tu tente d'afficher un objet, comme c'est ton cas, si aucune méthode 'toString()' n'est implémentée dans la classe de l'objet en question, ce sera son adresse en mémoire qui apparaitra, alors que si tu as fais une méthode 'toString()' (qui retourne la représentation de ta classe sous forme de chaine de caractère), ce sera une chaine de caractère qui s'affichera.
A toi ensuite de définir ce que retournera ta fonction toString dans ta classe. Généralement on retourne les valeurs des différentes propriétés de la classe (format texte donc)

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

8

lafa73, le 15 avr 2008 à 17:34:04

Je ne sais pas pourquoi une fois j execute une methode avec return il n affiche rien
que dois je faire
merci

Répondre à lafa73

9

kij_82, le 15 avr 2008 à 17:34:44

Montre nous ce que tu as fais (donne ton code)
~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

10

lafa73, le 15 avr 2008 à 17:48:58

Dans la classe point j ai inserer ce code
public double distance(Point M) {

d = Math.sqrt( (this.x - M.x) * (this.x - M.x) + (this.y - M.y) * (this.y - M.y));
return d;
}
}
et dans le main
Point P1 = new Point (14,18);

P1.distance(50,25);
}
}
il n affaiche rien

Répondre à lafa73

11

=[Cvrd]=Tassin, le 15 avr 2008 à 17:51:52

Ajoute : System.out.println(P1.toString()); -- Alex pour vous servir --

-- N'oubliez pas de mettre vos sujets en "Résolu" lorsque vous avez la réponse ;-) --

Répondre à =[Cvrd]=Tassin

12

lafa73, le 15 avr 2008 à 17:57:44

Non ca ne marche pas moi je veux afficher la distance entre deux point qui est un double alors que dans la methode tostring elle imprimeles abscisse de mon point

Répondre à lafa73

13

kij_82, le 15 avr 2008 à 18:01:59

Pour cela il faut afficher :

 System.out.println("Distance : "+p1.distance(p2));


Au bon endroit dans ton code bien sur.

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82

14

lafa73, le 15 avr 2008 à 18:14:49

C bon merci ca marche
je vous remercie bcp

Répondre à lafa73

15

 kij_82, le 15 avr 2008 à 21:39:02

Si le problème est résolu, pense à cocher l'option "résolu" pour le statut de la discussion (situé tout en haut de la discussion)

~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~

Répondre à kij_82