Partage
  • Partager sur Facebook
  • Partager sur Twitter

[java] apprentissage des classes

    24 novembre 2005 à 8:15:11

    Bonjour à tous je suis en train d'apprendre le JAVA
    Je voudrais bien savoir à quoi peut servir la programmation orientée OBJET ?

    Car dans le fond , je trouve que ca ne sert aps a grand chose

    PEut etre me trompe-je
    • Partager sur Facebook
    • Partager sur Twitter
      24 novembre 2005 à 10:39:06

      Je t'assure, tu te trompes.
      L'interet de la POO est multiple:
      en logique objet, on découpe le programme en entité distinct (les objets), qui peuvent etre reutilisable ou clairement identifier dans le programmes.
      L but est de decouper le programmes en petite partie distinct qui s'assemblent. Car il est plus facile de manintenir et ce s'y retrouver dans un code clairement séparé que dans un code monolithique.
      Le systems d'encapsulation, permet de ne pas trop avoir d'effet de bord avec les variable global par exemple, de clairement delimiter les possiilité de l'objet pour l'utilisateur
      Un objet est constituer generalement d'attribut qui le caracterise
      (comme les carac d'une voiture ou d'un ordinateur) et de fonctionalité propre a ce type d'objet (comme avancer, reculer, tourner pour une voiture).
      On peux clairement definir un type d'action a une entité.
      Du coup il est plus simple de modeliser un systeme utilisateur (comme un systeme banquaire (cas ultra classique))
      On ajoute le systeme d'heritage qui permet de regrouper, factoriser des elements communs a des objets proche. Le systeme d'exception pour la remonté des erreurs et des avertissements:
      car il fait associer la conception objet avec la programmation. Un programme ne ce developpe pas en attaquant directement le code (du moins chez les pros) On fait un cahier des charges, cahier d'analyse, de conception, j'en passe te des meilleurs. Le code ce n'est peu etre pas 50% du travail. Un systeme d'analyse et de conception comme UML permet de modeliser sur papier un programme objet.

      La c'est ce qui me vient par la tete, ce ne sont pas les seuls interets.

      Programmer en procedural et en objet est totalement different. Ce n'est pas la meme philosophie.
      Coder en Java, comme on code en C est une abération.

      bref voila en gros et en vrac. :)
      • Partager sur Facebook
      • Partager sur Twitter
        24 novembre 2005 à 11:24:11

        par exemple comme ça ?

        class Véhicule

        int roues;
        int passagers;
        string carburant[]=(huile de coude,essence,diesel,uranium);
        int vitesse;

        fonction avancer();

        ----- les class ci-dessous héritent de la class véhicule et de toutes ses fonction et variables ----
        class 4_roues extend véhicules
        int chargement_max;
        fonction reculer();


        class 2_roues extend véhicules
        fonction roue_arriere();

        class 0_roue() extend véhicules
        int altitude;

        ------ les class ci dessous héritent de la classe 4_roues--------------
        class camion extend 4 roues
        string type:(bois,charbon, pain de mie)


        ----celles-ci de la classe 2 roues-----
        class moto extend 2_roues
        ----------
        on met des variables et des fonctions propres aux motos

        class vélo extend 2_roues
        ----------
        on met des fonctions et variables propres aux vélo

        ----- héritent de la class 0 roues
        class avion extend 0_roues
        int distance_max;
        fonction décoller();
        fonction atterir();

        class sous_marin extend 0_roues
        fonction plonger();


        enfin on peux faire des objets:
        je ne me rappelle plus comment on les déclare mais on va faire l'objet :

        "boeing" qui est de la class avion
        et qui a donc : une vitesse, des passagers, les fonctions atterir et décoller etc

        l'objet :
        "fiat panda" de la class voiture
        qui a aussi une vitesse et des passagers mais qui ne peut pas décoller et atterir mais peut reculer

        etc.


        je crois que c'est en gros comme ça.
        et au final, crois-le ou non mais ça permet de faire des tas de trucs plus pratique et plus efficaces
        que sans les objets.


        • Partager sur Facebook
        • Partager sur Twitter
          24 novembre 2005 à 14:05:11

          bonjour

          d'un point de vue algorithimyque la POO sert:

          1)eclairer le code
          2)faciliter la maintenance
          3)facilite d'adaptaion

          mais elle ne :
          1)accelaire pas le programme
          2)le rend pas plus sur
          3) ni plus puissant

          bref la POO c'est comme la mode ca sert pas a grand chose les resultat avec et sans sont les meme mais c'est un etat d'esprit et de programmation...


          mrdus

          si tu te lance dans le java il y a une super class "TextWindow" qui permet de fair des saissi tres simplement (j dis ca a cause de ton String []... )
          voila

          Trysac
          • Partager sur Facebook
          • Partager sur Twitter
            24 novembre 2005 à 14:29:11

            Ouh la, Avec ou sans, il y a une net difference.
            Peu etre pas pour l'utilisateur final. Lui il s'en tamponne grave que ce soit objet ou non. Mais pour le devellopeur ça fait un net difference. Et puis il ne faut pas oublier qu'un soft c'est encore beaucoup de taf apres sa sortie officiel: rien qu'en corrections de bug et d'evolution selon la volonté du client. Tu gagnes donc en rapidité de developpement et de maintenance au final.
            C'est deja pas mal, non?
            • Partager sur Facebook
            • Partager sur Twitter
              24 novembre 2005 à 14:33:07

              c'est ce que j ai dis non ??

              Citation : Trysac

              bonjour

              d'un point de vue algorithimyque la POO sert:

              1)eclairer le code
              2)faciliter la maintenance
              3)facilite d'adaptaion



              • Partager sur Facebook
              • Partager sur Twitter
                24 novembre 2005 à 14:36:35

                oui j'ai vu ça.
                mais dire que les "les resultat avec et sans sont les meme"
                ça depend d'ou on ce place non?
                • Partager sur Facebook
                • Partager sur Twitter
                  24 novembre 2005 à 14:42:56

                  a oui bien sur ^^

                  je parlai du point de vue de l'utilisateur ...

                  je prog avec des objet alors je la voie la differance!!! ^^
                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 novembre 2005 à 15:00:52

                    Bon ça va on est d'accord.
                    je te mordrais donc pas :D:D:D
                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 novembre 2005 à 15:41:36

                      Ok mais vous pourriez pas me donner des exemples plus concrets ???
                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 novembre 2005 à 15:53:59

                        Disons qu'il faut que l'exemple soit conscquent pour comprendre le plein potentiel de l'objet.
                        Au faite as tu recherché sur le net?
                        genre sur wikipedia?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          25 novembre 2005 à 1:26:44

                          Bonjour,

                          Je te donne un exemple de l'intérêt que peut avoir l'héritage et les classes abstraites en Java, qui sont deux choses majeures de la POO.

                          L'implémentation des classes abstraites.
                          Tu veux pouvoir manipuler des triangles, des carrés, des ronds.
                          Nous serons d'accord que ce sont des objets géométriques. Tous ces objets partagent certaines caractéristiques. Par exemple, on peut calculer leurs périmètres.
                          Nous pouvons donc définir une classe objet qui contient certaines choses, par exemple un constructeur vide, mais aussi et c'est là le plus grand intérêt, une méthode getPerimetre(), qui donne le perimètre de l'objet étudié. Cette méthode sera abstraite. Elle n'est pas définie dans la classe objet. Elle le sera dans les classes Carre.java, Rond.java.
                          Quel est l'intérêt ? D'une part, une meilleure mise à jour. D'autre part, pour l'utilisateur, s'il veut calculer les périmètres d'une figure, sans se soucier de savoir si c'est un carré ou un rond, il suffira qu'il tape, unObjet.getPerimetre() et il aura la valeur dudit périmètre.
                          Je ne sais pas si tu saisis l'avantage... mais si tu as l'habitude de programmer, tu te rendras compte de la portée que cela peut avoir.

                          La notion d'héritage
                          De même, certains objets ont les même propriétés que d'autres. Pour donner un exemple, un carré n'est qu'un losange mais dont les angles sont tous égaux à 90°. Si nous définissons pour la classe losange.java la méthode getPerimetre() pour qu'elle rende la valeur égale à quatre fois la longueur d'un coté du losange, nous ne serons pas obligés de la redéfinir dans la classe carre.java.
                          Je ne sais -encore une fois- pas si cet exemple peut t'aider à comprendre... Mais au moins j'aurais essayé.

                          N'hésite pas à me contacter si tu as des questions sur Java.

                          Mais comme te l'as conseillé notre ami lunaire, un petit tour sur le web, ou encore la lecture d'un bon livre pourrais te faire le plus grand bien pour débuter. Google est notre ami à tous !
                          Même si le mieux reste (et restera) java.sun.com :)

                          Bon Courage dans ton apprentissage.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            25 novembre 2005 à 10:29:46

                            Comme je suis un ours sympa, je vous files le lien de mon livre favori sur java: http://java.developpez.com/livres/penserenjava/

                            bonne lecture
                            • Partager sur Facebook
                            • Partager sur Twitter
                              25 novembre 2005 à 11:55:38

                              merci a tous , NOUNOURS j'ai deja ce site dans mais favoris ..
                              • Partager sur Facebook
                              • Partager sur Twitter
                                25 novembre 2005 à 15:01:36

                                Il faut surtout dire que quand tu passe au langage objet, il te sera tres difficile à programmer comme un tebé après (je parle des programmations avec un seul fichier...)
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  26 novembre 2005 à 18:57:40

                                  Une autre caractéristique intéressante de la POO qui n'est pas assez mis en évidence ici est le masquage d'information : même si c'est possible en langage procédural, en POO les parties du programme ne savent que ce qu'elles ont besoin de savoir, et ne peuvent faire que ce qu'elles ont besoin de faire.

                                  Il en résulte une plus grande transparance : ma fonction trie la liste, mais je me moque de savoir comment il fait. Une plus grande réemployabilité aussi : si le modèle objet est bien fichu on peut l'exploiter dans un contexte plus général, ou plus spécialisé, ou qui n'a pas de rapport apparent.

                                  Le système d'heritage permet de généraliser la programmation (et la généralisation, c'est la racine de l'intelligence). Par exemple, si on a une fonction de tri, il est idiot d'en faire une pour trier des entiers, une pour trier des flottants, une pour trier des camemberts... non, c'est idiot. Du moment que les objets puissent se comparer entre-eux, il est possible d'écrire une fonction qui trie tout type d'objet.

                                  Enfin, la POO permet d'avoir uen approche plus naturelle de certains problème. Par exemple, une modélisation physique : il est naturelle d'utiliser des objets pour représenter... des objets!

                                  Bref, la POO est importante parce qu'elle permet d'éviter à 100% (dans les bons langages) la redondence, avec tous les effets que ca implique. Elle apporte également des solutions plus naturelles à certains problèmes. Dans les fait, les langages procéduraux utilisent des entités (structures) pour simuler la POO (sans en avoir tous les aventages). Plus qu'une gamme de langage, la POO est une philosophie de programmation apportant des solutions parfois plus efficientes.
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  [java] apprentissage des classes

                                  × 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