IL SEMBLE QUE VOUS UTILISEZ ADBLOC POUR BLOQUER LA PUBLICITÉ, AUCUNE PUB INTRUSIVE SUR FDZ ET PAS DE POPUP
FDZ EST GRATUIT DONC MERCI DE DÉSACTIVER VOTRE ADBLOCK ET DE BIEN VOULOIR PARTICIPER ET JOUER LE JEU


PAR SUITE D'ABUS LES SERVEURS CCCAM ET ABONNEMENT NE SONT PAS TOLÉRÉS SUR LE FORUM

Page 1 sur 3 123 DernièreDernière
Affichage des résultats 1 à 10 sur 24
Share |

Discussion: Petite question en JAVA

  1. #1
    HAVOC Visiteurs

    Par défaut Petite question en JAVA

    J'ai une petite question en JAVA. Pour un petit projet initiatique en JAVA en demande de:
    Créer la class abonne possédant l' attribut entier id (identifiant de l'abonné) et l'attribut abonnement de type object Abonnement.

    Ma question est, comment créer un constructeur qui puisse vérifier si l'id entré en paramètre n'a pas déjà utilisé par un autre objet de la classe Abonné ?

  2. #2
    Date d'inscription
    janvier 2008
    Localisation
    Ile-de-France
    Messages
    8 070
    Remerciements
    275
    Remercié 417 fois dans 209 messages
    Pouvoir de réputation
    10

    Par défaut

    Salem,

    Tu ajoutes une propriété en Static que tu nommeras MaxID par exemple, cette entier étant déclaré en Static sera partagé par toutes les instances Abonnée donc lors de la création d'un Abonné tu incrémentes cette attribut, autrement dit on considérera que tout ce qui est inférieur à MaxID est un ID déjà attribué à un abonné.

    Bien sure si le ID est entré comme paramètre dans le constructeur tu peux faire appel à un objet Static du genre ArrayList qui contiendra tout les IDs occupés pour ne pas les répéter.

    J'espère que j'ai pas dit trop de conneries, je ne suis pas un JAVAiste Cliquer ici pour agrandir
    Dernière modification par mouradski ; 26/10/2008 à 21h00. Motif: Correction Ortho

    Core i7 6700K@
    4Ghz - Noctua NH-U9S
    - Asus Z170-PRO GAMING - DDR4 G.Skill Ripjaws 4 x 8 Go @2800Mhz - KFA2 GTX 980 Ti OC Black Edition 6Go - Toshiba P300 1 To & Sandisk SSD 240 Go - Corsair Vengeance C70 - LEPA MaxBron 650W - LG GH22NS90 - Logitech G710+ & Corsair Gaming M65 - Creative Chat HD 720p - Liyama Prolite GB2488HSU
    متل الرجل الذي يبيع السمك في البحر من امامكم و العدو من وراء كل رجل عظيم امرأة
    -------


    Cliquer ici pour agrandir


  3. #3
    HAVOC Visiteurs

    Par défaut

    Cliquer ici pour agrandir Envoyé par mouradski_21 Cliquer ici pour agrandir
    Salem,

    Tu ajoutes une propriété en Static que tu nommeras MaxID par exemple, cette entier étant déclaré en Static sera partagé par toutes les instances Abonnée donc lors de la création d'un Abonné tu incrémentes cette attribut, autrement dit on considérera que tout ce qui est inférieur à MaxID est un ID déjà attribué à un abonné.

    Bien sure si le ID est entré comme paramètre dans le constructeur tu peux faire appel à un objet Static du genre ArrayList qui contiendra tout les IDs occupés pour ne pas les répéter.

    J'espère que j'ai pas dit trop de conneries, je ne suis pas un JAVAiste Cliquer ici pour agrandir
    Je suis plus pour une solution avec l'attribut arrayList en static, car l'utilisation d'un attribut maxId comme tu l'as défini n'est pas fiable, en effet, si tu créé l'abonné avec l'id de valeur 1 et un autre avec un id de valeur 3 ton maxId indiquera que les id de valeurs {1,2 ,3} sont pris hors que le 2 est libre, autrement dit, le maxId n'est pas fiable dans le cas de trous dans les id.

  4. #4
    Date d'inscription
    janvier 2008
    Localisation
    Ile-de-France
    Messages
    8 070
    Remerciements
    275
    Remercié 417 fois dans 209 messages
    Pouvoir de réputation
    10

    Par défaut

    Cliquer ici pour agrandir Envoyé par HAVOC Cliquer ici pour agrandir
    Je suis plus pour une solution avec l'attribut arrayList en static, car l'utilisation d'un attribut maxId comme tu l'as défini n'est pas fiable, en effet, si tu créé l'abonné avec l'id de valeur 1 et un autre avec un id de valeur 3 ton maxId indiquera que les id de valeurs {1,2 ,3} sont pris hors que le 2 est libre, autrement dit, le maxId n'est pas fiable dans le cas de trous dans les id.
    Pour la première solution c'est bien sure dans le cas ou le constructeur ne contient pas de paramètre ID et que son attribution sera automatisée dans le corps de la Méthode du constructeur.

    .......
    // On matera MaxID en private pour pour éviter qu'on y touche et on laissera ce privilège
    // qu'au constructeur
    private static int MaxID;
    .......

    public Abonnée(Abonnement Ab,......) // pas de "int ID" dans les params
    {
    ........
    this.ID = ++MaxID;
    ........

    // comme ça on aura même pas à faire des teste de redondance comme // dans les base de //données avec auto incrémentation
    }
    Donc c'est fiable et automatique et ça évitera plus de calcul et moins de ressource mémoire qu'une ArrayList.
    Dernière modification par mouradski ; 27/10/2008 à 20h35.

    Core i7 6700K@
    4Ghz - Noctua NH-U9S
    - Asus Z170-PRO GAMING - DDR4 G.Skill Ripjaws 4 x 8 Go @2800Mhz - KFA2 GTX 980 Ti OC Black Edition 6Go - Toshiba P300 1 To & Sandisk SSD 240 Go - Corsair Vengeance C70 - LEPA MaxBron 650W - LG GH22NS90 - Logitech G710+ & Corsair Gaming M65 - Creative Chat HD 720p - Liyama Prolite GB2488HSU
    متل الرجل الذي يبيع السمك في البحر من امامكم و العدو من وراء كل رجل عظيم امرأة
    -------


    Cliquer ici pour agrandir


  5. #5
    Date d'inscription
    janvier 2008
    Localisation
    kouba
    Messages
    1 993
    Remerciements
    0
    Remercié 0 fois dans 0 messages
    Pouvoir de réputation
    11

    Par défaut

    tu as un maxid et et une id

    if id=maxid+1 then (ton code1)
    ----else msg(êtes vous sur de vouloir entrer la valeur "id")
    ----------if ok then (ton code1)
    -------------else msg(il faut mette comme valeur "maxid+1")

    si tu veux un array alors c beaucoup plus compliquer que ça
    a demain

  6. #6
    Date d'inscription
    février 2008
    Messages
    116
    Remerciements
    0
    Remercié 0 fois dans 0 messages
    Pouvoir de réputation
    10

    Par défaut

    Salam,
    Je pense qu'il vaux mieux utiliser une hashTable, ou tu stock tes objets et la clé sera l'id, c'est plus facile a manipuler, et tu pourra même faire des recherches sur les objet suivant leur id
    Bonne chance

  7. #7
    HAVOC Visiteurs

    Par défaut

    Le souci c'est que la structure de l'object et les paramètres référentiels du constructeur me sont imposés. Je n'ai nullement le choix, je dois avoir un paramètre 'Id' de type int dans le constructeur de l'objet abonné.
    Je pense que c'est un projet très léger et qu'il n'y a pas à gérer le cas où l'Id utilisé serait déjà exploité.
    Arfff... je hais les énoncés à 2 balles qui ne sont ni claires ni complets.

  8. #8
    Date d'inscription
    janvier 2008
    Localisation
    Ile-de-France
    Messages
    8 070
    Remerciements
    275
    Remercié 417 fois dans 209 messages
    Pouvoir de réputation
    10

    Par défaut

    Cliquer ici pour agrandir Envoyé par HAVOC Cliquer ici pour agrandir
    Arfff... je hais les énoncés à 2 balles qui ne sont ni claires ni complets.
    Wé c'est ceux qui complexent le plus, à la fin après avoir cru qu'on a une solution ultra sophistiquée, il s'avère que la solution était ultra simple et qu'il n'était nullement demandé de traiter tout les cas MAIS si on décide pour faire simple de ne traiter que ce qui a été explicitement demandé on se retrouve avec des remarques du genre "imaginez que.....alors......pour dire finalement que la solution était erronée"

    Tout ce speech pour dire que je crois que c'est plus des exos pour tester la réaction de l'étudiant à l'ambiguïté Cliquer ici pour agrandir ou MDR Cliquer ici pour agrandir un test inconito de recrutement au MIB Cliquer ici pour agrandir

    Core i7 6700K@
    4Ghz - Noctua NH-U9S
    - Asus Z170-PRO GAMING - DDR4 G.Skill Ripjaws 4 x 8 Go @2800Mhz - KFA2 GTX 980 Ti OC Black Edition 6Go - Toshiba P300 1 To & Sandisk SSD 240 Go - Corsair Vengeance C70 - LEPA MaxBron 650W - LG GH22NS90 - Logitech G710+ & Corsair Gaming M65 - Creative Chat HD 720p - Liyama Prolite GB2488HSU
    متل الرجل الذي يبيع السمك في البحر من امامكم و العدو من وراء كل رجل عظيم امرأة
    -------


    Cliquer ici pour agrandir


  9. #9
    Date d'inscription
    janvier 2008
    Messages
    250
    Remerciements
    0
    Remercié 0 fois dans 0 messages
    Pouvoir de réputation
    10

    Par défaut

    Cliquer ici pour agrandir Envoyé par HAVOC Cliquer ici pour agrandir
    Le souci c'est que la structure de l'object et les paramètres référentiels du constructeur me sont imposés. Je n'ai nullement le choix, je dois avoir un paramètre 'Id' de type int dans le constructeur de l'objet abonné.
    Je pense que c'est un projet très léger et qu'il n'y a pas à gérer le cas où l'Id utilisé serait déjà exploité.
    Arfff... je hais les énoncés à 2 balles qui ne sont ni claires ni complets.
    Here you go, you solved yourself. Cliquer ici pour agrandir

    je pense qu'il vaux mieux utiliser une hashTable, ou tu stock tes objets et la clé sera l'id, c'est plus facile a manipuler, et tu pourra même faire des recherches sur les objet suivant leur id
    I would use HashMap instead of hashtable for uniqueness and search. Hashtable has been replaced more or less by hashmap and hashset.

    those are my $0.02 and discussion is open.

  10. #10
    Date d'inscription
    août 2008
    Messages
    154
    Remerciements
    0
    Remercié 0 fois dans 0 messages
    Pouvoir de réputation
    10

    Par défaut

    Y a aussi une solution pro, tu peux utiliser le design pattern Singleton,
    Mais bref, réponse tardive ! Cliquer ici pour agrandir c'est pas de rentrer dans les détails.

Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Une petite question.
    Par Houhou05 dans le forum Etudes et enseignement
    Réponses: 1
    Dernier message: 04/06/2011, 13h44
  2. une petite question .
    Par amimoz dans le forum Les téléphones GSM
    Réponses: 11
    Dernier message: 23/09/2010, 08h55
  3. petite question
    Par bigblue dans le forum Cybercafés
    Réponses: 0
    Dernier message: 23/08/2010, 17h30
  4. Une petite question !
    Par amimoz dans le forum ADSL Algérie
    Réponses: 5
    Dernier message: 22/04/2010, 22h29
  5. Petite question !
    Par mouradski dans le forum Offres d'emploi
    Réponses: 3
    Dernier message: 25/03/2009, 14h10

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
[Auto utilitaire DZ] [Webimag] [Algérie Info] [Guide Algérie] [Mosquée ALBADR MEAUX] [Photographe MARIAGE]

is PageRank Checking Icon