Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide moi s'il vous plais !

    20 février 2019 à 15:23:42

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
    at net.premierclass.programme.Ville.setCatigories(Ville.java:70)
    at net.premierclass.programme.Ville.<init>(Ville.java:27)
    at net.premierclass.programme.Capitale.<init>(Capitale.java:13)
    at net.premierclass.programme.Main.main(Main.java:23)
    • Partager sur Facebook
    • Partager sur Twitter
      20 février 2019 à 20:32:03

      bonjour Moussa,

      ArrayIndexOutOfBoundsException veut dire qu'une erreur a été rencontrée, car tu as essayé de lire (ou d'écrire dans) une case qui n'a pas été définie dans ton tableau.

      Après si tu réussis pas résoudre le problème poste ton code en utilisant la balise </> et ce sera plus facile de voir l'erreur.

      -
      Edité par Nemo404 20 février 2019 à 20:41:21

      • Partager sur Facebook
      • Partager sur Twitter
        6 mars 2019 à 17:58:49

        Bonsoir nemo404,

        merci pour votre réponse , voila mon code:

        <package net.premierclass.programme;

        public class Main {

        public static void main(String[] args) {

        // TODO Auto-generated method stub

        Capitale cap = new Capitale("Paris", 243343, "France", "La toure effel");

        System.out.println(cap.decrisToi());

        Ville tableau[] = new Ville[6];

        String[] tab = {"Marseille", "lille", "caen", "lyon", "paris", "nantes"};

        int[] tab2 = {123456, 78456, 654987, 75832165, 1594, 213};

        for(int i = 0; i < 6; i++){

          if (i <3){

            Ville v = new Ville(tab[i], tab2[i], "france");

            tableau[i] = v;

          }

          else{

            Capitale C = new Capitale(tab[i], tab2[i], "france", "la tour Eiffel");

            tableau[i] = C;

          }

        }

        for(Ville v : tableau){

          System.out.println(v.decrisToi()+"\n");

        for(Object obj : tableau){

          System.out.println(obj.toString()+"\n");

        }

        }

        >

        • Partager sur Facebook
        • Partager sur Twitter
          6 mars 2019 à 19:08:11

          Il n'y a pas d'erreur dans ce code, les erreurs se trouve dans la classe ville et capitale (je viens de tester le code et il marche chez moi). Vérifie bien avec le cours que ton code est correct sinon poste les classes.
          • Partager sur Facebook
          • Partager sur Twitter
            25 mars 2019 à 11:11:30

            (class ville)
            package net.premierclass.programme;
            public class Ville {
            protected String nomVille ;
            protected String nomPays ;
            protected int nbrHabitants ;
            protected char catigories ;
            protected static int nbreInstance = 0 ;
            protected static int nbreInstanceBis = 0 ;
            public Ville () {
            System.out.println("Création d'une ville !") ;
            setNomVille("inconnu") ;
            setNomPays("inconnu") ;
            setNbrHabitants(0) ;
            this.setCatigories();
            nbreInstance++;
            nbreInstanceBis++ ; 
            }
            public Ville(String pNom, int pNbre, String pPays) {
            System.out.println("Création d'une ville avec des parametres !");
            setNomVille(pNom) ;
            setNomPays(pPays) ;
            setNbrHabitants(pNbre) ;
            this.setCatigories();
            nbreInstance++;
            nbreInstanceBis++ ; 
            }
            public String getNomVille() {
            return nomVille;
            }
            public void setNomVille(String nomVille) {
            this.nomVille = nomVille;
            }
            public String getNomPays() {
            return nomPays;
            }
            public void setNomPays(String nomPays) {
            this.nomPays = nomPays;
            }
            public int getNbrHabitants() {
            return nbrHabitants;
            }
            public void setNbrHabitants(int nbrHabitants) {
            this.nbrHabitants = nbrHabitants;
            }
            public char getCatigories() {
            return catigories;
            }
            public static int getNbreInstanceBis() {
            return nbreInstanceBis;
            }
            private void setCatigories() {
            int bornsupérieur[] = {0, 1000, 10_000, 100_000, 500_000, 1000_000, 5000_000, 1000_0000};
            char catégorie [] = {'?', 'A', 'B', 'C', 'D', 'E', 'F', 'G'};
            int i = 0;
            while(i < bornsupérieur.length && this.nbrHabitants > bornsupérieur[i])
            i++ ;
            this.catigories = catégorie[i];
            }
            public String decrisToi() {
            return "\t"+this.nomVille+" est une ville de "+this.nomPays+" , elle comporte : "+this.nbrHabitants+" habitants => elle est donc de catigorie :"+this.catigories;
            }
            public String comparer(Ville v1) {
            String str = new String();
            if(v1.getNbrHabitants() > this.nbrHabitants)
            str = v1.nomVille+" est une ville plus peplée que "+this.nomVille ;
            else
            str = this.nomVille+" est une ville plus peplée que "+v1.getNomVille() ;
            return str ;
            }
            public String toString() {
            return "\t" + this.nomVille+" est une ville de "+ this.nomPays+" , elle comporte : "+this.nbrHabitants+" ==> elle est donc de la catégorie "+this.catigories;
            }
            }
            ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
            (Class Capitale)
            package net.premierclass.programme;
            public class Capitale extends Ville {
            private String monument ;
            public Capitale() {
            super() ;
            monument = "aucun" ;
            }
            public Capitale(String nom, int hab, String pays, String monument) {
            super(nom, hab, pays);
            this.monument = monument ;
            }
            public String decrisToi() {
            String str = super.decrisToi() + "\n\t ===>> "+ this.monument + " est un monument" ;
            System.out.println("Invocation de super.decrisToi");
            return str ;
            }
            public String getMonument() {
            return monument ;
            }
            public void setMonument(String monument) {
            this.monument = monument ;
            }
            public String toString() {
            String str = super.toString()+ "\n\t ==> "+this.monument +" est un monument";
            return str ;
            }
            }
            • Partager sur Facebook
            • Partager sur Twitter
              25 mars 2019 à 12:37:11

              Bonjour,

              Tu as oublié la lettre "H" dans la classe ville:

              char catégorie [] = {'?', 'A', 'B', 'C', 'D', 'E', 'F', 'G'};


              il faut mettre ça : 

              char catégorie [] = {'?', 'A', 'B', 'C', 'D', 'E', 'F', 'G','H'};

              Le bug vient du constructeur de la classe ville qui appelle la méthode setCatigories() et donc ce tableau où il manque un paramètre...

              • Partager sur Facebook
              • Partager sur Twitter
                25 mars 2019 à 14:35:34

                Bonjour,

                Ta question de départ ne respecte pas les Règles générales du forum ... Outre le manque de politesse, merci de lire ceci :

                Merci d'utiliser la balise code Image

                Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Image de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: java;">Votre code ici</pre>.

                Mauvais titre

                Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

                Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

                De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

                Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

                Pour modifier votre titre, éditez le premier message de votre sujet.

                (titre originel : Aide moi s'il vous plais !)

                • Partager sur Facebook
                • Partager sur Twitter
                Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

                Aide moi s'il vous plais !

                × 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