Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probléme avec les objets

Sujet résolu
    24 octobre 2008 à 13:55:09

    Bonjour,

    Voila j'ai un petit soucis avec les objets (en général).

    bref je vaiss vous expliqué mon probléme avec l'exemple des villes comme dans le tuto.

    Alors prenons la classe principal (le main avec le PSVM:

    public class Mainclass {
    
    	
    	public static void main(String[] args) {
    		
    		
    		Ville toto= new Ville();
    		Ville ville1= new Ville("Montpellier",16000,"FRANCE");
    		
    		
    	
    	}
    
    }
    


    Voila il y a donc 2 objets un avec les valeurs par défault et l'autre avec les valeurs deja défini.

    Bref dans la classe Ville j'aimerais crée une méthode qui demande à l'utilisateur le nom de la ville qu'il veut voir.

    public void recherche(){
    
    //Voici le début de ma méthode:
    String titi;
    System.out.print("Veuillez saisir votre ville:");
    Scanner toto= new Scanner(System.in);
    
    //Ensuite je bloque je ne voie pas comment faire pour accédé à tous les objets
    //que j'ai crée, aprés je pense utilisée un if et la fonction equals("si titi //est égale à la valeur nom d'un de mes objets alors on déclenche la méthode //affiche").
    
    
    
    
    
    }
    


    en espérant que vous puissez m'aidez,

    Cordialement

    sushis
    • Partager sur Facebook
    • Partager sur Twitter
      24 octobre 2008 à 14:10:01

      Tu te créer un tableau de ville, après la saisie, tu parcours ton tableau en faisant une comparaison entre la chaîne rentrée par l'utilisateur et le nom des villes.

      Si il y a une correspondance : tu affiche la ville
      Sinon : affiche un message comme quoi il n'y a aucune correspondance.
      • Partager sur Facebook
      • Partager sur Twitter
        24 octobre 2008 à 14:13:12

        On m'a parlé aussi de Vecteur j'ai essayé de me documenté un petit peu sur le sujet mais j'avoue ne pas trop comprendre.

        (Je vais essayé cela avec les tableau , d'aprés mes sources les vecteurs sont des tableaux je sais en crée correctement mais je ne sais pas ajouté d'objet dedans).

        encore merci pour l'aide je teste ça tout de suite!
        • Partager sur Facebook
        • Partager sur Twitter
          24 octobre 2008 à 15:03:44

          Va voir ce topic, il y a ce dont tu as besoin...

          Mais avance un peu dans le tuto, tu verras, j'en parle (rapidemment) mais tu devrais t'en sortir !
          • Partager sur Facebook
          • Partager sur Twitter
            24 octobre 2008 à 15:29:09

            Je viens juste de le lire :p .

            Mais d'abord j'ai un autre soucis!(dans le tuto j'en suis à la partie héritage donc si jamais j'ai manqué une explication sur les Vecteur avant ^^ ).

            Bref mon ééme probléme c'est l'intégration d'une variable d'instance "tableau" (mal formulé surement mais bon...).

            Voici une classe Tableau:
            Class Tablo{
            
            private int toto[3]; 
            //Si je ne me trompe pas il y a bien 4 case disponible sur ce tableau (car on //commence à partir de 0)?
            
            //CONSTRUCTEUR
            
            public Tablo(){
            
            toto[3]={255,255,255,255}; 
            //ca ressemble à une IP mais faut pas le dire 
            
            }
            
            public Tablo(ptoto){
            
            toto[3]=ptoto[3];
            
            }
            
            //ASSESSEUR + MUTATEUR
            
            public int gettoto(){
            
            return toto[3];
            
            }
            
            public void settoto(int ptoto[3]){
            
            toto[3]=ptoto[3];
            
            }
            
            //J'ai complié tout ça et comme prévu il a pas mal de fautes(mais je ne voie //pas lequel!)
            
            
            
            }
            


            Ensuite dans la classe main:

            public class Mainclass {
            
            	
            	
            	
            	
            	
            	
            	
            	public static void main(String[] args) {
            
            Tablo yoyo = new.Tablo(34,45,35,45);
            //Je ne sais si cette ligne de code est bonne.
            
            System.out.println(yoyo);
            //est ici ^^?
            
            
                                       }
            }
            


            Voila en espérant que vous puissez m'aidez.

            (Je pense ensuite pour pour le "stockage" de mes classe utilisée un vecteur (à chaque fois q'un objet est crée celui-ci seras ajouté dans un vecteur enfin bref tout ça pour dire que j'ai encore plein de question :p ).

            Cordialement,

            sushis
            • Partager sur Facebook
            • Partager sur Twitter
              24 octobre 2008 à 15:34:34

              Non dans un String[3] il y a 3 valeur avec des indices qui sont soit 0 soit 1 soit 2...
              La valeur que tu utilises pour initialiser un tableau (String[3]) ne vaut absolument pas dire que tu iras jusqu'à l'indice 3 mais signifie qu'il y a 3 valeurs dans ton tableau ! ! !
              • Partager sur Facebook
              • Partager sur Twitter
                24 octobre 2008 à 15:37:12

                Ok et le reste de la syntaxe est bonne alors (déclaration de l'objet + assesseur,mutateur de la classe?).

                Sinon je te remercie pour ton aide (et au passage et grand merci pour le tuto de JAVA qui m'aide beaucoup, il est rare de voir sur le net des explications aussi clair!).
                • Partager sur Facebook
                • Partager sur Twitter
                  24 octobre 2008 à 15:55:33

                  Tout n'est pas bon...
                  Ton instanciation est mauvaise car tu mets un point après new ! !
                  Ensuite... Redéfini la méthode toString() afin que, lorsque tu fasse un System.out.println(yoyo) la JVM appel la méthode toString de ton objet :
                  Donc, dedans, faire un parcours de ta boucle...

                  Sinon j'ai un peu la flemme de chercher, fait les modifs et montres les message d'erreurs... S'il y en reste ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 octobre 2008 à 16:01:18

                    J'avoue que pour la partie d umain j'y suis allé un peu bourrin.

                    Mais le soucis est la compilation de la classe Tablo j'ai tenté un truc mais cela ne fonctionne pas!

                    enfin je vais faire une pause là :D

                    encore merci je réattaquerais cela plus tard ^^
                    • Partager sur Facebook
                    • Partager sur Twitter
                      25 octobre 2008 à 10:56:40

                      Salut,

                      Lorsque tu écris toto[3], cela signifie "valeur du troisième élément du tableau toto". Celle-ci n'existe pas étant donné que ton tableau a 3 éléments : toto[0], toto[1] et toto[2].

                      Ton deuxième constructeur prend comme paramètre ptoto : quelle est son type ? il faut le préciser.

                      Le nom de ton tableau est toto (pour accesseur et mutateur).

                      Bonne chance
                      • Partager sur Facebook
                      • Partager sur Twitter
                        30 octobre 2008 à 16:23:22

                        Rebonjour,

                        voila je me suis remis à mon programme et je l'ai modifié :p .

                        Bref j'ai moins de probléme qu'avant mais ce n'est pas encore ça.

                        voila mon soucis:J'essaie toujours de créer un tableau private.

                        public class Tablo{
                        
                        private int toto[];
                        
                        //CONSTRUCTEUR:
                        
                            public Tablo{
                                       
                                       toto[4]={255,255,255,255};
                                         //IL Y A UNE ERREUR ICI
                                        }
                           public Tablo(int ptoto[]){
                           
                                     toto=ptoto 
                                        
                                       }
                        
                        //ASSESSEUR+MUTATEUR
                        
                           public int gettoto(){
                                     
                                    return toto[4];
                        
                                       }
                           public void settoto(int ptoto[]){
                        
                                        toto=ptoto; 
                        
                                       }
                        
                        
                        
                        }
                        


                        Il me faut 4 cases dans mon tableau ^^.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          30 octobre 2008 à 23:21:32

                          Salut !

                          la manière que tu utilises pour initialisé ton tableau est incorrect :euh:
                          Voici des manières de faire différentes (j'ai aussi corrigé une ou deux petites erreurs) :
                          Ces codes ont le même résultat, c'est juste pour que tu vois qu'il existe de multiples solutions.

                          class Tablo{
                          
                          	private int[] toto; // Tu ne dis ni la taille ni le contenu (déclaration)
                          
                          	public Tablo(){
                          		toto = new int[4]; // taille
                          		toto[0] = 255; // contenu
                          		toto[1] = 255;
                          		toto[2] = 255;
                          		toto[3] = 255;
                          	}
                          	public Tablo(int[] initToto){
                          		toto = initToto;
                          	}
                          }
                          


                          tu ne peux utiliser la méthode des "{...}" que lors de l'initialisation :
                          class Tablo{
                          
                          	private int[] toto = {255, 255, 255, 255}; // Tu dis en même temps la taille et le contenu
                          
                          	public Tablo(){
                          	}
                          	public Tablo(int[] initToto){
                          		toto = initToto;
                          	}
                          }
                          


                          class Tablo{
                          
                          	private int[] toto = new int[4]; // Tu dis juste que le tableau a 4 éléments
                          
                          	public Tablo(){
                          		toto[0] = 255; // Tu rentres les valeurs
                          		toto[1] = 255;
                          		toto[2] = 255;
                          		toto[3] = 255;
                          	}
                          	public Tablo(int[] initToto){
                          		toto = initToto;
                          	}
                          }
                          
                          • Partager sur Facebook
                          • Partager sur Twitter
                            31 octobre 2008 à 1:29:45

                            Merci pour ton aide je t'en suis trés reconnaissant (je préfére la 3eme méthode je ne sais si celle-là est la plus conseillé).


                            Par contre j'ai un autre soucis (et oui désolé ^^ ) voilà aprés avoir "configuré" mon tableau donc:

                            Bon voila en fait j'essaie de faire un programme JAVA qui crée des compte utilisateur pour un chat:

                            Voici le code:

                            import java.util.Scanner;
                            
                            public class Client {
                            	
                            	
                            	
                            	 private String nom;
                            	 private int IP[];
                            	 private String pass;
                            	
                            	//CONSTRUCTEURS
                            	
                            	public Client(){
                            		
                            		nom  = "client";
                            		IP = new int[4];
                            		IP[0]= 255;
                            		IP[1]=255;
                            		IP[2]=255;
                            		IP[3]=255;
                            		pass = "y";
                            					}
                            	
                            	
                            		
                            	public Client(String pclient,int pIP[],String ppass){
                            		
                            		nom = pclient;
                            		IP=pIP;
                            		pass = ppass;
                            		
                            					}
                            	//ACCESSEURS + MUTATEURS
                            	
                            	public String getnom()
                            	  {
                            		  return nom;
                            	  }
                            	  
                            	  public int getIP()
                            	  {
                            		  return IP[0];//ICI 1ER PROBLEME voila je ne peut retourné qu'une seule case!
                            	  }
                            	  
                            	  public String getpass()
                            	  {
                            		  return pass;
                            	  }
                            	  
                            	  public void setNom(String pNom)
                            	  {
                            		  nom= pNom;
                            	  }
                            	  
                            	  public void setIP(int pIP[])
                            	  {
                            		  IP= pIP;
                            	  }
                            	  
                            	  public void setpass(String ppass)
                            	  {
                            		  pass = ppass ;
                            	  }
                            //METHODE
                            
                            //Cette méthode-ci demande à l'utilisateur d'entrée son nom,son IP et son pass.
                            
                            public void Saisie()
                            	{
                            		Scanner toto= new Scanner(System.in);
                            		
                            		System.out.print("Veuillez saisir votre nom de client:" );
                            		this.nom=toto.nextLine();
                            		System.out.print("Veuillez saisir votre adresse IP en respectant la norme IpV4:");
                            		this.IP[0]=toto.nextInt();
                            		System.out.print(".");
                            		this.IP[1]=toto.nextInt();
                            		System.out.print(".");
                            		this.IP[2]=toto.nextInt();
                            		System.out.print(".");
                            		this.IP[3]=toto.nextInt();
                            		System.out.print("Veuillez saisir votre mot de passe:");
                            		this.pass=toto.nextLine();
                            		
                            		
                            		
                            	}
                            


                            Voila il y a 2 probléme donc:

                            Le premier est que à l'assasseur du tableau IP je ne peux retourné qu'une seul valeur (et donc une seul case).

                            Le deuxiéme , j'ai essayé malgré tout de compilé le programme (puisque eclipse n'a détecté aucune erreur de syntaxe).

                            Voila le contenu du main:

                            public class Mainclass {
                            
                            	
                            	
                            	
                            	
                            	
                            	
                            	
                            	public static void main(String[] args) {
                            	
                            		
                            		Client yoyo=new Client();
                            
                            
                            yoyo.Saisie();
                            
                            }
                            
                            }
                            


                            voila j'aimerais à la demande de l'entrée de l'IP que l'on ne saute pas de ligne.
                            sinon à part cela tout se passe bien pour la saisi des valeurs du tableau mais lorsque l'on arrive à la demande du mot de passe là sa bloque (rien ne se passe) je ne peu pas saisir le mot de passe.

                            en espérant que vous puissez m'aidez,

                            Cordialement

                            sushis
                            • Partager sur Facebook
                            • Partager sur Twitter
                              31 octobre 2008 à 17:45:01

                              Salut !

                              Pour ton premier problème :
                              Ton attribut IP est un tableau d'int, donc son accesseur doit retourner un tableau d'int !

                              public int[] getIP
                              {
                                  return IP;
                              }
                              


                              Tout simplement ! Si tu es habitué à du C/C++ ça doit te choquer, mais Java utilise quand même des pointeurs implicitement.



                              Concernant ton second problème je pense qu'il te suffit de te renseigner un peu plus sur la classe Scanner. Pour cela ---> Javadoc ! http://java.sun.com/j2se/1.5.0/docs/ap [...] /Scanner.html



                              Voila ! Bonne chance !

                              PS : j'espère que ton projet de chat n'est que pour t'entrainer, car si tu veux en faire un vrai, il faut te renseigner sur les notions de réseau avant...
                              • Partager sur Facebook
                              • Partager sur Twitter
                                31 octobre 2008 à 18:17:51

                                Merci encore pour ton aide mais j'ai necore un soucis (oui je sais je suis relou).

                                Alors heu j'ai du mal avec la doc anglaise (normalement je devrais pas!) mais j'ai vraiment du mal quoi je suis un peu perdu quoi.

                                ensuite voila dans la classe du main:

                                public class Mainclass {
                                
                                	
                                	
                                	
                                	
                                	
                                	
                                	
                                	public static void main(String[] args) {
                                
                                Client yoyo=new Client("toto",23,23,23,23,"toto");
                                //Voila cela me met une erreur je ne sais pas comment crée un objet composé d'un tableau.
                                
                                }
                                }
                                


                                Il n'existe pas une doc en français de Javadoc?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  1 novembre 2008 à 19:58:23

                                  Salut,

                                  Eh non désolé il n'existe pas (à ma connaissance) de Javadoc en francais ! Mais tu verras c'est souvent les mêmes choses qui reviennent tout le temps, puis la Javadoc permet surtout de savoir comment sont faites les choses, quelles méthodes tu peux utiliser etc. Les noms des méthodes sont souvent intuitives!

                                  Ensuite pour ton problème je pense que la meilleure solution est d'abord de créer un tableau qui contient ton ip, et ensuite de construire ton client avec celui ci :

                                  public class Mainclass 
                                  {	
                                      public static void main(String[] args) 
                                      {
                                          int tab[] = {23, 23, 23, 23};
                                  
                                          Client yoyo=new Client("toto", tab, "toto");
                                      }
                                  }
                                  
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    2 novembre 2008 à 23:28:55

                                    Merci un soucis de moins!

                                    Il ne manque plus que la saisie...

                                    je devrais donc tout trouvé sur la Doc JavaSun...

                                    Mais je ne sais pas la lire, je trouve la doc trop confuse à mes yeux.J'ai du mal à mis retrouver je ne trouve pas de fonction scan qui ne saute pas de ligne...

                                    Merci encore une fois pour ton aide je progresse petit à petit à la construction du chat!

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Probléme avec les objets

                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                    • Editeur
                                    • Markdown