IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Soucis : Point@19da4fc


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Par défaut Soucis : Point@19da4fc
    Bonjour,

    Alors tout d'abord commencons dans le bon ordre : mon code :


    Ma class Point

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    class Point{
     
    	private static int i;
     
    	public Point(){
    		i=0;
    	}
     
    	public Point(int i){
    		this.i=i;
    	}
     
    	public static int getPoint() {
    		return i;
    	}
     
    	public static void setPoint(int i) {
    		Point.i = i;
    	}
     
    }

    Ma class Bateau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    class Bateau{
     
    	private int taille;
    	private static Point[] bat;
     
     
    	public Bateau(){
    		 taille = 0; // Par défaut il a une taille 0
    		 }
     
    	// Constructeur de Bateau aléatoirement généré d'une certaine taille entrée en parametre
    	 public Bateau(int c, int taille){
     
    			 bat = new Point[taille];
    			 for(int i = 0; i<bat.length; i++){
    				 bat[i] = new Point(c+i);
    			 }
    	 }
     
    	public static void afficheBateau(){
    		int i; 
    		for(i=0; i<bat.length; i++){
    			System.out.println(bat[i]);
    		}
    	 }
     
    }
    Et donc quand j'utilise le afficheBateau() il me sort des genres de référence à mes objets "Point" créés du style :

    Point@de1b8a
    Point@1e232b5
    Point@16f144c
    Point@19da4fc
    Point@baa466

    Mais le soucis c'est que je n'ai aucune idée de à quoi cela peut correspondre, même si je pense que c'est une genre d'adresse en Hexa qui permet d'accéder à mon objet.

    Donc la question ou plutot les question ^^"

    1)A quoi correspond véritablement ce "Point@de1b8a" ?

    2)Comment retranscrire cette chose pour avoir la valeur de Point(int i)?

    J'ai lu plus bas dans le forum le poste de JohnNC qui semble traiter de la même chose, mais c'est tellement vague pour moi que je nage totalement.

    Enfin voilà, le JAVA et moi c'était 0 avant il y a 3 jours, cependant dans le cadre de mes études, je dois m'autoformer rapidement, c'est pourquoi je vous remercie d'avance pour vos réponses quelles qu'elles soient.

    Cordialement,

    Jean

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Je crois en effet que c'est l'adresse (mais cela n'a pas d'importance cette information est inexploitable).
    Lorsque tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(bat[i]);
    c'est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(bat[i].toString());
    hors tu n'a pas redéfini de méthode toString() dans ta classe Point c'est donc la méthode toString de la classe mère la classe Object (toutes les classes héritent par défaut de Object) qui est appelé. Cette méthode affiche l'adresse de l'objet.
    Il faut donc que tu ajoute dans ta classe Point une méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public String toString()
    {
        //chaine a retourner
    }

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Par défaut
    Merci de la réponse rapide et qui me fait découvrir encore un peu plus JAVA.

    Le problème est résolu grâce à toi guigui5931 en ce qui concerne ce Point@truc.

    Par contre lors de l'affichage, j'ai maintenant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Case cliquée : 26
     
    Bateau :
     
    //Création :
    nouveau point : 26
    nouveau point :27
    //afficheBateau :
    27
    27
    Donc à la création il créé bien les bonnes cases pour un bateau donné, mais afficheBateau, ne lit que la dernière valeur...

    Je ne comprends pas trop ce qu'il se passe...

    Cordialement,

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Tant mieux si ça a réolu ton problème
    Pour ce qui est de ton nouveau problème je pense qu'il nous manque une partie du code (surement celle ou tu créé tes bateaux) pour comprendre ce qui se passe.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    btn.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {							    	
     
    JButton bouton = (JButton) e.getSource();
    String Contient = bouton.getText();
    System.out.println(Contient);
     
    if(Info.GetInfo() != ""){
     
    String str = Info.GetInfo();
     
    	if(str == "Torpilleur"){
     
    		Bateau torpilleur = new Bateau(z, 2);
    		Info.SetInfo("");
    		torpilleur.afficheBateau();
    		count++;
     
    	}
    	else if(str == "Croiseur"){
     
    		Bateau croiseur = new Bateau(z, 3);
    		Info.SetInfo("");
    		croiseur.afficheBateau();
    		count++;
     
    	}
    	else if(str == "Fregate"){
     
    		Bateau fregate = new Bateau(z, 4);
    		Info.SetInfo("");
    		fregate.afficheBateau();
    		count++;
    	}
    	else if(str == "PortAvion"){
     
    		Bateau portavion = new Bateau(z, 5);
    		Info.SetInfo("");
    		portavion.afficheBateau();
    		count++;
     
    	}
     
    }
    Voilà l'endroit où je créé mes bateaux, et la class Bateau est décrite dans mon premier poste.

    le z dans new Bateau(z, 5); est l'argument qui s'incrément dans une boucle for placée beaucoup plus haut dans mon code.






    -------------------------------------------------------------------------
    -------------------------------------------------------------------------
    ---------------------------------- EDIT --------------------------------
    -------------------------------------------------------------------------
    -------------------------------------------------------------------------

    Problème résolu.

    Petites modifications effectuées :

    Class Point ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    class Point{
     
    	private int i;
     
    	public Point(){
    		i=0;
    	}
     
    	public Point(int i){
    		this.i=i;
    	}
     
    	public int getPoint() {
    		return i;
    	}
     
    	public static void setPoint(int i) {
    		i = i;
    	}
     
    	public String toString()
    	{
    	    return getPoint()+"";
    	}
     
     
    }
    Class Bateau ->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    class Bateau{
     
    	private int taille;
    	public Point[] bat;
     
     
    	public Bateau(){
    		 taille = 0; // Par défaut il a une taille 0
    		 bat= new Point[taille];
    		 }
     
    	// Constructeur de Bateau aléatoirement généré d'une certaine taille entrée en parametre
    	 public Bateau(int c, int taille){
     
    			 bat = new Point[taille];
    			 for(int j = 0; j<bat.length; j++){
    				 int res = c+j;
    				 bat[j] = new Point(res);
    				 System.out.println(bat[j]);
    			 }
     
    			 System.out.println(bat[0]);
     
    	 }
     
    	public void afficheBateau(){
     
    		for(int i=0; i<bat.length; i++){
    			System.out.println(bat[i]);
    		}
    	 }
     
    }

    Le problème venait surement des variables static qui abondaient dans mon code, donc je pense que le soucis venait d'un grand manque de connaissance en méthodologie et sur la portée des variables.

    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Souci avec la recherche de points géodésiques
    Par vremac dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 14/01/2015, 16h05
  2. soucis de point d'ancrage
    Par smartise dans le forum Balisage (X)HTML et validation W3C
    Réponses: 25
    Dernier message: 09/11/2007, 15h09
  3. compression de données du point de vue algorithmique
    Par GoldenEye dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 26/06/2002, 15h51
  4. Réponses: 3
    Dernier message: 12/06/2002, 19h03
  5. savoir si 1 point est a l'intérieur d'un cercle ...
    Par skarladevobsy dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 23/05/2002, 18h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo