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 :

[Poo] Problème de compréhension


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de Freyskeyd
    Homme Profil pro
    Développeur PHP | Flex
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur PHP | Flex
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 94
    Points
    94
    Par défaut [Poo] Problème de compréhension
    Salut à tous,

    a force de me creuser la tête pour trouver des idées, j'en perd mes acquis..

    Voila j'aimerai faire une application de gestion de licence.
    J'aurai donc une classe Logiciel avec divers parametres (identifiant, nom, marque)
    et une classe Licence, avec identifiant, type, prix.

    Je pensai donc faire hérité licence de la classe Logiciel.
    Mais je ne vois pas comment appliqué à un objet Licence tel ou tel Logiciel...

    Si vous pouviez m'éclairer..

    Merci!

  2. #2
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    Tu comptes avoir plusieurs licence pour un logiciel ?

    Si non :

    tu fais une classe Logiciel avec pour attribut : identifiant, nom, marque, type, prix.

    Deuxième questions, tes informations seront sauvegardés où ? Ou c'est juste pour manipuler du Java ?

    Quand tu auras répondu à ces questions on pourrat certainement plus t'aider
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

  3. #3
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Voila comment tu pourais t'y prende

    Pour la classe Licence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    class Licence{
        private Sting identifiant; 
        private String type;
        private int prix;
     
        public Licence(String Id, String Typ, int Price){
             identifiant = Id;
             type = Typ;
             prix = Price;
        }
     
        public void setId(String Id){
             identifiant = Id;
        }
     
        public String getId(){
             retrun(identifiant);
        }
     
        public void setTyp(String Typ){
             type = Typ;
        }   
     
        public String getTyp(){
             retrun(type);
        }
     
        public void setPrice(int Price){
             prix = Price;
        }
     
        public int getPrice(){
             retrun(prix);
        }
    }

    Pour la classe Logiciel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    class Logiciel{
        private String identifiant;
        private String nom;
        private String marque;
        private List<Licence> lice= new ArrayList<Licence>();
     
        public Logiciel(String Id, String Nam, String Marq){
             identifiant = Id;
             nom = Nam;
             marque = Marq;
        }
     
     
        public void setId(String Id){
             identifiant = Id;
        }
     
        public String getId(){
             retrun(identifiant);
        }
     
        public void setNam(String Nam){
             nom = Nam;
        }   
     
        public String getNam(){
             retrun(nom);
        }
     
        public void setMarq(String Marq){
             marque = Marq;
        }
     
        public String getMarq(){
             retrun(marque);
        }
     
        public void addLicence(Licence lic){
              lice.add(lic);
        }
     
        public Licence getLicence(string Id){
              return(lice.get(SearchLice(Id)));
        }
     
        public delLicence(String Id){
             lice.remove(SearchLice(Id));
        }
     
        private int SearchLice(String str){
              for (int i=0; i<lice.size(); i++)
                    if (lice.get(i).equals(str)) return (i);
       } 
     
    }

    En gros ca pourait resembler a ca
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  4. #4
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Points : 6 506
    Points
    6 506
    Par défaut
    A moins que certains de ses logiciels aient plusieurs Licence. Dans ce cas il devra faire une liste de Licence pour la classe logiciel.

    En attendant ton retour Freyskeyd...
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

  5. #5
    Membre régulier Avatar de Freyskeyd
    Homme Profil pro
    Développeur PHP | Flex
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur PHP | Flex
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 94
    Points
    94
    Par défaut
    salut et merci de vos réponses.

    donc oui il existera plusieurs licence pour un meme logiciel.

    Mais j'aimerai utiliser un héritage. Est-ce possible?


    Merci

  6. #6
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Je crois qu'il est possible de faire ce que tu dis (a partir de l'heritage), mais je crois de cette maniere c'est plus logique et proche de la realité (principe de la POO), et biensur plus facile a mettre en place.


    NB: j'ai mis le code a jour afin qu'il puisse prendre plusieur clé.
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  7. #7
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Citation Envoyé par Freyskeyd Voir le message
    salut et merci de vos réponses.

    donc oui il existera plusieurs licence pour un meme logiciel.

    Mais j'aimerai utiliser un héritage. Est-ce possible?


    Merci
    Il ne faut pas utiliser l'héritage juste pour le plaisir. L'héritage implique une relation conceptuelle très forte et particulière dont il ne faut pas abuser.

    Dans ton cas il n'y a aucune raison pour avoir de l'héritage entre les classes Logiciel et Licence (un logiciel n'est pas un licence et une licence n'est pas un logiciel) .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  8. #8
    Membre régulier Avatar de Freyskeyd
    Homme Profil pro
    Développeur PHP | Flex
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur PHP | Flex
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 94
    Points
    94
    Par défaut
    Mais j'ai besoin de montrer un héritage dans mon projet.

    Donc si je résume.
    J'ai une classe Logiciel.
    Une classe Licence.
    Je peux donc créer une classe LicencePro, qui hérite de Licence?

    Je n'arrive pas à trouver d'autres idées

    Merci de vos conseils!

  9. #9
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Tu peux imaginer de spécialiser ta classe Licence avec 2 sous classes LicenceGratuite et LicencePayante par exemple. Ainsi tu supprimerais l'attribut "prix" de la classe Licence pour le mettre dans la classe LicencePayante .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  10. #10
    Membre régulier Avatar de Freyskeyd
    Homme Profil pro
    Développeur PHP | Flex
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur PHP | Flex
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 94
    Points
    94
    Par défaut
    oui et par exemple ajouter une option de SAV pour la version Pro...

  11. #11
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Après tu peux imaginer un peu ce que tu veux, mais il est important d'utiliser les concepts à bon escient.
    Pour simplifier :
    • héritage être
    • liaison avoir, posséder, être composé de


    exemple :
    • une LicenceGratuite EST une Licence héritage
    • un Logiciel A une (ou plusieurs) Licence(s) liaison
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  12. #12
    Membre régulier Avatar de Freyskeyd
    Homme Profil pro
    Développeur PHP | Flex
    Inscrit en
    Octobre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur PHP | Flex
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 87
    Points : 94
    Points
    94
    Par défaut
    salut,

    j'ai donc pensé à ça :

    une classe Logiciel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    package myObject;
     
    import java.util.ArrayList;
     
    /**
     *
     * @author freyskeyd
     */
    public class Logiciel {
        private int idLogiciel;
        private String NomLogiciel;
        private Marque idMarque;
        private ArrayList<Licence> licences = new ArrayList<Licence>();
     
        public Logiciel(int idLogiciel, String NomLogiciel, Marque idMarque) {
            this.idLogiciel = idLogiciel;
            this.NomLogiciel = NomLogiciel;
            this.idMarque = idMarque;
        }
     
        public void setLicences(ArrayList<Licence> licences) {
            this.licences = licences;
        }
     
        public String getNomLogiciel() {
            return NomLogiciel;
        }
     
        public void setNomLogiciel(String NomLogiciel) {
            this.NomLogiciel = NomLogiciel;
        }
     
        public int getIdLogiciel() {
            return idLogiciel;
        }
     
        public void setIdLogiciel(int idLogiciel) {
            this.idLogiciel = idLogiciel;
        }
     
        public Marque getIdMarque() {
            return idMarque;
        }
     
        public void setIdMarque(Marque idMarque) {
            this.idMarque = idMarque;
        }
     
    }
    une classe marque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    package myObject;
     
    /**
     *
     * @author freyskeyd
     */
    public class Marque {
        private int idMarque;
        private String Nom;
     
        public Marque(int idMarque, String Nom) {
            this.idMarque = idMarque;
            this.Nom = Nom;
        }
     
        public String getNom() {
            return Nom;
        }
     
        public void setNom(String Nom) {
            this.Nom = Nom;
        }
     
        public int getIdMarque() {
            return idMarque;
        }
     
        public void setIdMarque(int idMarque) {
            this.idMarque = idMarque;
        }
    }
    une classe Licence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    package myObject;
     
    /**
     *
     * @author freyskeyd
     */
    public class Licence  {
           private int idLicence;
           private int prix;
           private String name;
     
        public Licence(int idLicence, int prix, String name) {
            this.idLicence = idLicence;
            this.prix = prix;
            this.name = name;
        }
     
        public int getIdLicence() {
            return idLicence;
        }
     
        public void setIdLicence(int idLicence) {
            this.idLicence = idLicence;
        }
     
        public String getName() {
            return name;
        }
     
        public void setName(String name) {
            this.name = name;
        }
     
        public int getPrix() {
            return prix;
        }
     
        public void setPrix(int prix) {
            this.prix = prix;
        }
    }
    et une classe LicenceParticulier (je n'ai pas mis tout les paramètres disponibles):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    package myObject;
     
    /**
     *
     * @author freyskeyd
     */
    public class LicenceParticulier extends Licence{
        private double taux;
     
        public LicenceParticulier(int idLicence, int prix, String name, double taux) {
            super(idLicence, prix, name);
            this.taux = taux;
        }
     
    }
    Mais je ne sais pas dans cette dernière comment je dois créer l'objet.

    Auriez-vous un exemple de script présentant ce type d'usage?
    j'aimerai créer un objet par exemple Flex, lui associer la marque adobe, puis lui créer deux licenceParticulier avec un taux diffèrent.

    Mais dois-je d'abord créer la licence de base? ou est-ce que je dois créer deux licences presque identique?
    en clair : puis-je créer 1 licence de base et de cette licence en créer deux autres diffèrentes? (licenceParticulier)


    Merci!

Discussions similaires

  1. [Débutant] problème de compréhension
    Par Sylvester dans le forum Général Java
    Réponses: 18
    Dernier message: 21/07/2005, 09h16
  2. Réponses: 5
    Dernier message: 11/04/2005, 10h21
  3. [C#] Problème de compréhension de System.Convert ET Provider
    Par papouAlain dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/11/2004, 21h52
  4. onclipevent (problème de compréhension)
    Par stephane eyskens dans le forum Flash
    Réponses: 8
    Dernier message: 24/09/2003, 15h09
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

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