Partage
  • Partager sur Facebook
  • Partager sur Twitter

Classe abstraite

    27 mai 2009 à 0:41:08

    Bonsoir tlm,
    Regardez la classe main suivante qui fait appel à la classe Animal(tuto de java du site du zéro), à travers la classe loup qui étend cette dernière:
    Classe main:
    public class Test{
      public static void main(String[] args){
         Object obj = new Loup();
         obj.manger();
      }
    }
    <couleur nom="bleu">Classe Animal:</couleur>
    <code type="java">
    package d_LesClassesAbstraites;
    
    
    	abstract class Animal {
    		 
           
            protected String couleur;//La couleur de l'animal
         
            protected int poids;// Le poids
            
            protected void manger(){   //La méthode manger
                    System.out.println("Je mange de la viande");
            }
            
            protected void boire(){   //La méthode boire
                    System.out.println("Je bois de l'eau !");
            }
            
         
            abstract void deplacement(); //La méthode de déplacement
                 
            abstract void crier();//La méthode de cri 
            
            public String toString(){
                    
                    String str = "Je suis un objet de la " + this.getClass() + ", je suis " + this.couleur + ", je pèse " + this.poids+" kgs";
                    return str;
            }
            
    }
    
    </code>
    

    d'après l'auteur le main fonctionne correctement, mais quand je le teste sur éclipse j'ai l'erreur suivante:
    The method manger() is undefined for the type Object ce qui est normal d'ailleurs.
    Ma question est la suivante:c'est moi qui me trompe ou c'est vraiment une erreur du tuto?
    • Partager sur Facebook
    • Partager sur Twitter
      27 mai 2009 à 8:32:19

      Je viens de vérifier sur le tuto. En effet, c'est une erreur.

      Je te souhaite bien du courage si tu veux le lui faire remarquer. J'ai déjà essayé pour plusieurs autre erreur dans les commentaires de tuto et par MP, j'ai fait un bide monumental.
      Je reconnais l'immense travail derrière ses tutos, mais je trouve qu'il se fout vaguement de ce qu'on lui fait comme remarque, ce qui est dommage.
      • Partager sur Facebook
      • Partager sur Twitter
        27 mai 2009 à 9:05:45

        Oui, moi aussi je lui ai déjà fait des remarques au zéro de java mais on dirait qu'il s'en moque.
        Bah, tt pis pr lui. :p

        • Partager sur Facebook
        • Partager sur Twitter
          27 mai 2009 à 9:59:37

          Ah, ba tu me fais plaisir, je me sens moins seul maintenant.
          • Partager sur Facebook
          • Partager sur Twitter
            27 mai 2009 à 10:07:28

            Pour la correction (Juste au cas où tu ne l'aurais pas trouvée toi-même, ou si un autre Zéro se pose la question... :p ), c'est simplement :

            Animal obj = new Loup();
            obj.manger();
            


            Ou bien :

            Loup obj = new Loup();
            obj.manger();
            
            • Partager sur Facebook
            • Partager sur Twitter
              27 mai 2009 à 10:39:29

              ou bien
              Objet obj = new Loup();
              ((Animal)obj).manger();
              


              Y'a encore au moins une erreur dans la partie évènementielle sur l'animation, et apparemment d'autres zéros ont trouvé d'autres erreurs alors bon courage ^^
              • Partager sur Facebook
              • Partager sur Twitter
                27 mai 2009 à 11:23:40

                Ha je sais il a sans doute voulu faire du polymorphisme, mais là ça ne marche pas car il n'y a pas de méthode manger dans la classe Object, donc à mon avis c'est pas Object mais Animal qu'il faut mettre.
                • Partager sur Facebook
                • Partager sur Twitter
                  27 mai 2009 à 11:33:06

                  mouai, pour moi, la conclusion c'est d'aller apprendre avec un autre tuto. Parce que avec des erreurs aussi basiques que celles là, ça laisse imaginer les autres erreurs qui auraient pu se glisser sur des parties plus poussées...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 mai 2009 à 11:43:13

                    Meuh non, c'est juste pour voir quels Zeros font attention à ce qu'ils font, et ceux qui copient bêtement, appuient sur F6, voient que ça affiche bien ce que ça doit afficher, et sont persuadés de désormais connaître le Java :p
                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 mai 2009 à 12:01:31

                      Ha p-e pour ça qu'il laisse des erreurs exprès, enfin bof je dis quand même.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 mai 2009 à 17:54:06

                        Et dire que les tutos sont relus et corrigés par les expert de la CIA, NSA, SDZ, ...
                        c'est pas trop de la faute de l'auteur tout le monde fait des erreurs, mais je trouve quand mémé qu'avant de poster un code, il doit s'assurer sur PC que le résultat est bien celui attendu.

                        Perso, je n'ai jamais lu que les 5% du tuto de java, c'est peut etre pour ça que j'ai jamais vu ce genre d'erreur.
                        • Partager sur Facebook
                        • Partager sur Twitter
                        J'ai tous les badges d'OpenClassrooms.
                          28 mai 2009 à 18:39:05

                          L'erreur est humaine, on est d'accord.
                          Par contre quand Dalshim par exemple essaie d'envoyer un MP, et qu'il n'est pas lu/pas pris en compte, là ça s'appelle du foutage de gueule.
                          C'est pas parce que son travail est assez long à réaliser qu'il faut le bénir de toutes les louanges.

                          Mais évidemment avoir l'esprit critique c'est aussi se dire bon le SDZ c'est pas mal mais je vais peut-être essayer de comparer les infos données avec d'autres sources (livres, autres tutos, doc de Sun...). C'est ce qui fera toujours la différence entre un type qui vient sur le SDZ juste pour apprendre à programmer et se la péter (ou pas) et un type qui s'intéresse à la programmation et qui pousse le raisonnement plus loin et qui apprend de nouvelles choses surtout (car les tutos du Sdz sont loin de/n'ont pas vocation à être exhaustifs).
                          • Partager sur Facebook
                          • Partager sur Twitter
                            28 mai 2009 à 21:06:47

                            En fait ce qu'il y a c'est que les tutos du sdz ne sont pas évolutifs, il sont rédigé et après il restent là et comme tu le dis dans certaines parties le raisonnement n'est pas assez poussé et les erreurs qu'il reste ne sont pas rectifiées, les codes ne sont pas toujours tester avant d'être mis, etc...

                            Personnellement quand j'ai lu le tutoriel sur Java SE surtout, j'ai trouver qu'il est utile pour débuter mais sans plus, le seule truc qu'il m'a appris que je ne connaissais pas car j'ai démarré avec java1.4 c'est la généricité et les itérators.
                            Le tutos J2EE je l'ai lu sans plus, il ne m'est pas utile, vu que j'ai besoin d'utiliser les sockets.
                            Par contre le tutos JDBC m'est utile vu que j'utilise les bases de données pour coder mes applis.

                            Mais c'est vrai que dans le tuto de cysboy il y a des erreurs qui laisse paraître que l'auteur est vraiment un débutant qui s'intéresse de loin au langage java et qui ne pousse pas plus loin que le bout de son nez, ou ça se vois le plus c'est dans la partie évènementielle.

                            Sinon rien ne remplacera un gros bon bouquin avec tout les Patterns expliqués et la majorité des classes les plus utilisées bien expliquée et des exemples de code bien commentés et sans erreurs.

                            Et les erreurs du tutoriel me sembles plus être des erreurs involontaire que des erreurs volontaire pour aider à mieux comprendre le langage, sinon il le mentionnerais quand même que le code est faux et nous pousserez à le corriger sans mettre la solution pour poussez les zéros à s'intéresser au raisonnement du langage.



                            • Partager sur Facebook
                            • Partager sur Twitter
                              28 mai 2009 à 21:59:06

                              Citation : java

                              Mais c'est vrai que dans le tuto de cysboy il y a des erreurs qui laisse paraître que l'auteur est vraiment un débutant qui s'intéresse de loin au langage java et qui ne pousse pas plus loin que le bout de son nez, ou ça se vois le plus c'est dans la partie évènementielle.



                              Je n'ai lu que quelques extraits, mais ce n'est clairement pas mon impression. Du peu que j'ai lu, il maîtrise son sujet. Par contre, étant donné qu'il s'agit d'un tuto réservé aux débutants, il limite nécessairement la quantité d'infos.

                              Honnêtement, ce n'est jamais facile de faire un cours pour débutants. Parce que ce qui parait évident à un utilisateur expérimenté n'est souvent pas simple à formuler pour une personne ne connaissant pas ou peu le sujet.

                              Pour Swing en particulier, je ne m'avancerai pas, je n'ai pas du tout lu ce chapitre. Mais personnellement, je sais que Swing et les librairies graphiques en général, c'est très loin de mon utilisation quotidienne de Java : je sais ce que c'est, je sais comment ça marche, je sais trouver les éléments dont j'ai besoin quand j'en ai besoin... Mais je suis très loin d'être à l'aise avec (En particulier au niveau des Layout).

                              Est-ce que ça fait de moi un débutant en Java ? Je ne crois pas... Est-ce que c'est pareil pour Cysboy ? Possible. Mais on ne peut pas faire un cours sur Java sans passer par Swing, alors il a peut-être été amené à faire un chapitre sur un thème qu'il connaissait de loin.

                              Bref, dire qu'il est débutant, ça me parait beaucoup s'avancer. Surtout qu'il a fourni un travail énorme, qui n'est clairement pas à la portée d'un débutant.

                              Après, qu'il n'ait pas pris la peine de tout tester, c'est dommage... Qu'il ne tienne pas compte des messages signalant ces erreurs, encore plus... Mais je crois qu'aller plus loin que ça, c'est vraiment manquer de respect au travail abattu.
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Classe abstraite

                              × 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