Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cours Debutez la programmation avec java

difficulté compréhension exercice récursivité

Sujet résolu
    14 janvier 2020 à 17:10:29

    Bonjour, 

    je suis toute nouvelle en java et la notion de récursivité est aussi nouvelle pour moi. 

    Je n'arrive pas à comprendre l'énoncé de l'exercice proposé ni a saisir où est la récursivité dans cet exercice. 

    Voici l'énoncé : Il manque un mot-clé dans la classe increment et une variable. Mettez-les dans le code et compilez-le. Exécutez la méthode printName à partir de main.

    et voici le code initial : 

    public class Animal {
       
            public int count = 0;
            public void increment() {
                Animal.count+=1;
            }
       
            public static void printName() {
                String name = "Rocky";
                System.out.println(name);
            }  
        
             public static void main(String[] args) {
            
             //TODO: Exécutez la fonction printName
             }
         }  



    Est-ce que quelqu'un pourrait essayer de m'expliquer l'énoncé de l'exercice en d'autres mots? 

    D'avance merci !

    maria

    ps : le "run checks" valide un exercice erroné ainsi qu'un exercice vide. 

    • Partager sur Facebook
    • Partager sur Twitter
      14 janvier 2020 à 18:05:07

      Il faut mettre la fonction main au dessus des autres fonctions. 

      • Partager sur Facebook
      • Partager sur Twitter
        15 janvier 2020 à 11:01:53

        FrancisKientéga a écrit:

        Il faut mettre la fonction main au dessus des autres fonctions. 


        Dans d'autres langages peut être, pas en java.

        Honnêtement, c'est un exo bien bancal je trouve. Et je en vois aucun lien avec la récursivité pour le moment.

        En gros, quand on doit gérer un compteur comme ici, on veut que le compteur soit un compteur "global", c'est à dire que quand on crée un animal, on l'incrémente. Sauf qu'en objet, à chaque création d'un animal, on crée une nouvelle variable count à 0, et c'est pas ce qu'on veut. On veut que cette variable soit partagée entre toutes les instances d'Animal. Et pour ça, il y a un mot clef (mot clef qui est déjà présent 2 fois dans ton code d'ailleurs).

        De la même manière, on pourrait vouloir incrémenter ce compteur sans avoir à créer de nouvelle instance, juste en faisant un Animal.increment(); Et pour ça, il manque également un mot clef (le même).

        Enfin, printName est une méthode static, et une méthode static ne s'appelle par de la même manière qu'une méthode habituelle. A toi de voir comment l'appeler.

        Enfin, si tu as vaguement lu entre les lignes, j'ai donné la réponse à l'énoncé, mais c'était impossible de faire autrement je pense :s

        -
        Edité par Tiffado 15 janvier 2020 à 11:04:03

        • Partager sur Facebook
        • Partager sur Twitter
          20 janvier 2020 à 18:02:57

          Merci beaucoup Tiffado ! (Francis?)

          C'est exactement l'explication dont j'avais besoin pour comprendre. Effectivement, l'exercice ne porte pas sur la récursivité (on n'appelle même pas la fonction increment) mais sur la notion de fonction static, qui n'est pas présentée dans les chapitres du cours. 

          Merci de m'avoir permis d'avancer, 

          Maria

          • Partager sur Facebook
          • Partager sur Twitter

          Cours Debutez la programmation avec java

          × 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