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 :

Expliquez moi cette méthode SVP


Sujet :

avec Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut Expliquez moi cette méthode SVP
    Bonjour,

    je n'ai pas compris comment fonctionne cette méthode ; est ce que quelqu'un pourrait m'expliquer s'il vous plaît, surtout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Carte carteEnleve = cartes[i];

    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
     
     
       public Carte enleverCarte(int position) {
        if (position <= 0 || position> nbJouets) {
          return null;
        }
        int i = position - 1;
        Carte carteEnleve = cartes[i];
        nbCartes--;
     
        for ( ; i < nbCartes; i++) {
          cartes[i] = cartes[i + 1];
        }
        return carteEnleve;
      }

    Je vous remercie pour votre aide.

  2. #2
    Membre Expert
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Par défaut
    Tu dois avoir un tableau de Carte déclaré plus haut dans ton code du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Carte cartes[] = new Carte[10];
    Carte carteEnleve = cartes[i]; signifie que tu accèdes à la carte du tableau se trouvant à l'index i.

  3. #3
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    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
     
     
       public Carte enleverCarte(int position) {
        if (position <= 0 || position> nbJouets) { // si position inccorecte, renvoyer null.
          return null;
        }
        int i = position - 1;
        Carte carteEnleve = cartes[i]; // sauvegarde la carte juste avant la position
        nbCartes--;
     
        for ( ; i < nbCartes; i++) { // pour toutes les cartes à partir de la position...
          cartes[i] = cartes[i + 1]; // décaler vers le bas (ce qui cause la perte de la carte enlevée)
        }
        return carteEnleve; // renvoi de la carte enlevée.
      }
    Exercice 1 : trouvez les bugs dans ce code.
    Exercice 2 : faites pareil en moins tiré par les cheveux.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Bonjour,

    je vous remercie pour toutes vos explications mais je ne comprends toujours pas cette notation :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Carte carteEnleve = cartes[i];
    Oui effectivement, j'ai un tableau :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Carte cartes[] = new Carte[10];
    On m'a appris à déclarer un tableau comme ci dessus.

    Est ce qu' en faisant ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Carte carteEnleve = cartes[i];
    je déclare un nouveau tableau ?


    Je vous remercie pour tous vos éclaircissements.

  5. #5
    Membre expérimenté Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Par défaut
    non tu définis un Objet carteEnleve de type Carte qui prends comme valeur la ième case du tableau cartes

    et en effet, ton premier code fait compliqué quand on peux faire simple

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Oui,merci, je commence à comprendre...Mais, comment peut on faire plus simple que mon premier code s'il vous plaît.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     for ( ; i < nbCartes; i++) { // pour toutes les cartes à partir de la position...
          cartes[i] = cartes[i + 1]; // décaler vers le bas (ce qui cause la perte de la carte enlevée)

    je ne comprends pas, cette expression

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cartes[i] = cartes[i + 1];
    Je veux dire, la carte, on l'a enlevée, pourquoi est ce qu'on la met, en position "i+1";

    Citation Envoyé par gifffftane Voir le message
    // décaler vers le bas (ce qui cause la perte de la carte enlevée)
    pourquoi, la décaler vers le bas, causerait sa perte...


    MERCI beaucoup pour votre aide.

  8. #8
    Membre expérimenté Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Par défaut
    imagine tu as ton tableau de cartes:

    1 | 2 | 3 | 4 | 5 | Valet | 9 (par exemple)

    tu souhaites supprimer la carte 5.

    tu mets donc Valet à la place de 5, et 9 à la place de Valet

    de ce fait tu obtiens:

    1 | 2 | 3 | 4 | Valet | 9

    c'est ce que fait la boucle for(), elle part de "i" (la carte à enlever) et déplace les valeurs suivantes de un en arrière.

    dans cette façon de faire

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 136
    Par défaut
    Ah merci beaucoup


    J'ai trés bien compris maintenant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Jscript]Cet objet ne gère pas cette propriété ou cette méthode
    Par 1tox dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/06/2006, 09h19
  2. aidez moi pour créer cette applet svp!
    Par walid2012 dans le forum JBuilder
    Réponses: 1
    Dernier message: 11/05/2006, 14h24
  3. Expliquez moi ça svp !
    Par adlich dans le forum Langage
    Réponses: 4
    Dernier message: 30/04/2006, 00h10

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