IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

[Débutant] Programmation orientée objet


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Curieux en informatique
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Curieux en informatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Points : 3
    Points
    3
    Par défaut [Débutant] Programmation orientée objet
    Bonjour,

    Je débute en Java et j'ai une question assez générale sur la programmation orientée objet. Je ne sais pas si je poste au bon endroit, je laisse le soin au modérateur de déplacer mon message le cas échéant.

    Mon problème est que quand je démarre un petit projet, j'ai du mal à organiser mes classes et créer de nouveaux types si nécessaire, ce qui fait que je me retrouve avec des classes beaucoup trop lourdes qui gèrent trop de choses. Les tutoriels que j'ai lu sur la poo reprennent à peu près tous le même exemple avec une classe animale et ses classes dérivées, mais on n’a pas tout le temps des choses aussi concrètes à modéliser. Y a t-il des techniques pour organiser son code proprement ? Avez-vous un tutoriel à me conseiller ?

    Merci d'avance pour votre aide.

  2. #2
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Points : 1 577
    Points
    1 577
    Par défaut
    Bonjour,

    difficile de répondre à votre question...
    Des tutoriels, il y en a plein sur Internet, que ce soit en texte ou en vidéo, mais ce qui est sûr, c'est qu'aucun de ces cours ne vous fera votre programme.

    Quelle expérience avez-vous en programmation ?
    Quel langage avez-vous déjà pratiqué ?

    Vous évoquez que pour votre "petit" projet, vous vous retrouvez avec des classes beaucoup trop lourdes, qui gèrent trop de choses. C'est que c'est déjà du lourd

    Je pense que bien évidemment, vous avez consulté ces tutoriels: http://java.developpez.com/cours/
    Au début, il n'y a pas de secret, il faut engranger un maximum d'informations avant d'arriver à commencer à pondre quelque chose, c'est fastidieux

    Ensuite vous pouvez peut être faire l'analogie entre un programme, et un classeur de tableur (EXCEL ou CALC pour ne pas les nommer).
    Imaginons que l'on veuille programmer une calculatrice (Ca change d'un zoo et de ses animaux !)
    # A l'époque du BASIC (si vous avez connu), on aurait eu un programme d'un seul un bloc traitant
    - les entrées des données par l'utilisateur
    - les opérations sur les entrées
    - l'affichage des résultats
    - la sauvegarde des opérations dans un fichier...
    Imaginez cela dans une feuille de tableur... ce serait un gros bric à brac (pour ne pas employer un autre terme)

    # En Programmation Objet, on pourrait envisager:
    - une feuille N°1 du tableur, dédiée au traitement des entrées de l'utilisateur
    - ensuite une feuille N°2 qui selon les valeurs de certaines cellules de la feuille N°1, effectuerait les opérations requises
    - enfin une feuille N°3, qui s'occuperait de l'affichage des résultats, sous forme de tableau, ou de graphe, en allant piocher des valeurs de cellules de la feuille N°2.

    Chaque feuille aurait ses propres données internes (membres de classes) nécessaires pour effectuer ses missions (méthodes de classes), et échangerait avec les autres feuilles...
    De cette manière, si vous devez améliorer la partie 'affichage résultat', vous savez dans quelle classe vous devez oeuvrer.
    La POO doit vous faciliter le boulot de création et de maintenance, en créant des entités avec des missions simples bien définies.
    Mais l'organisation de tout cela dépend de ce que vous voulez faire.

    Néanmoins, je crois qu'il y a une notion fondamentale qui se retrouve dans tous type de projet:
    http://baptiste-wicht.developpez.com...onception/mvc/

    Voilà, je ne sais pas si ce post correspond à votre question, mais j'espère qu'il vous aidera dans votre démarche.
    Si je peux vous donner un dernier conseil: n'essayez pas de faire un programme pour tester comment faire un programme; faites un programme dont vous avez besoin... mais un petit truc pour commencer.
    Si vous avez besoin du logiciel que vous construisez 'pour apprendre', vous aurez la volonté de l'améliorer et d'augmenter ses fonctionnalités. Vous verrez que petit à petit, vous devrez restructurer l'ensemble, vous entrerez alors dans la POO.

  3. #3
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    Le mieux serait de te lancer dans une analyse avant de commencer à coder.
    Tu serais alors dans l'univers de la conception. Ensuite tu pourrais passer à la réalisation (écriture de tes classes JAVA)

    Durant cette phase de conception tu peux utiliser la notation UML qui offre notamment un diagramme de classes permettant de passer directement à l'écriture de tes classes dans la foulée.

    Je sais que lorsque l'on commence à coder la tentation est grande de se jeter dans l'écriture de code source. Mais la phase d'analyse te permettra au final de gagner beaucoup de temps.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Fondamentalement, la POO est surtout une organisation des données et des méthodes.
    Ça permet par exemple de réutiliser un maximum d'éléments ou de les "muter" pour les adapter à un cas particulier...
    Bref, c'est avant tout une gymnastique de l'esprit, une décomposition des données et des opérations, un regroupement en "entités" logiques.

    Le plus simple pour commencer est de s'occuper des données.
    On essaye d'extraire des données dont la structure est répétitive (une adresse est une bonne candidate, de même qu'un numéro de téléphone, etc...)
    On se pose la question de savoir comment doit-on contrôler ces informations, dans quels cas un champ est obligatoire, dans quel autre il ne l'est pas...
    De cette étape, on devrait pouvoir déduire ce qui est commun, ce sera la "classe de base".
    Ce qui est particulier pourrait se traiter de plusieurs façons, soit un paramètre qui permet de discriminer, soit une spécialisation de la classe pour un cas particulier.
    Maintenant qu'on a modélisé cet objet, ensuite, on l'utilise... dans un objet "Personne" par exemple, ou Facture, Client, Fournisseur, etc...
    Et voilà, tu as mis le doigt dans la logique POO

    La difficulté est très relative, ça dépend beaucoup de ta façon de voire les choses.
    A l'époque (93 avec C++ en venant du RPG... eh oui, j'suis un vieux), on m'avait dit : Tu oublies tout ce que tu as appris, c'est tout autre chose...
    Personnellement, ça a plutôt été une révélation, enfin un langage qui me permettait de faire des modules facilement, de les lier entre eux et de les utiliser dans des applications de plus haut niveau (il faut dire que je faisait des modules système pour aider les développeurs de ma boite, donc, déjà un certain conditionnement qui aide à penser en "brique de base")

    Ceci dit, c'est un sujet vaste, difficile de répondre à toutes les problématiques comme ça

Discussions similaires

  1. [Turbo Pascal] [Débutant] Programmation Orientée Objet
    Par automatic87 dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 16/01/2009, 20h26
  2. Réponses: 2
    Dernier message: 30/03/2006, 15h48
  3. [C#] Comment correctement programmer orienté objet ?
    Par ChristopheOce dans le forum C#
    Réponses: 5
    Dernier message: 06/02/2006, 14h22
  4. [POO] apprendre la programmation orientée objet
    Par Invité dans le forum Langage
    Réponses: 5
    Dernier message: 10/12/2005, 12h33
  5. [DEBUTANT] Conseil sur la programmation orienté objet
    Par etiennegaloup dans le forum Langage
    Réponses: 7
    Dernier message: 27/05/2005, 13h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo