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 :

Comment invoquer des méthodes dans une main?


Sujet :

avec Java

  1. #1
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Novembre 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 156
    Points : 52
    Points
    52
    Par défaut Comment invoquer des méthodes dans une main?
    Bonsoir!

    Je suis toujours sur un DM donné par le professeur de Java que je retravaille tout seul.
    je cherche à compléter la méthode main de la classe Stack pour obtenir les sorties du cadres après l'énoncé ci-dessous.


    La classe Maillon

    c'est la réalisation Java d’un maillon.
    Elle comprend un attribut element qui est l’élément mis dans la pile et un attribut next qui référence le maillon suivant.
    La classe Maillon n’est visible que par les classes de son espace de noms.
    Elle est définie dans le même fichier que la classe Stack.
    La classe Maillon a deux constructeurs :

    1. un constructeur qui admet un élément passé en argument, dans ce cas le maillon suivant est établi à null lors de la déclaration des attributs.

    2. un constructeur qui admet un élément passé en argument et le maillon suivant.

    La classe Maillon a trois méthodes ayant une visibilité par défaut :

    • Object getElement() retourne l'élément associé au maillon courant
    • Object next() retourne le maillon suivant
    • boolean hasNext() retourne true s’il existe un maillon suivant, false sinon


    Les méthodes de réalisation sont:
    •void setNext(Maillon next) affecte l’attribut next avec le maillon passée en argument
    •void setElement(Object o) affecte l’attribut element avec l’objet o passé en argument

    La classe Stack

    La classe Stack est publique, elle a un attribut top qui référence le premier maillon.

    Elle a deux constructeurs:

    1.un constructeur vide dans ce cas l’élément sommet est égal à null et la pile est vide et de taille zéro.

    2. un constructeur qui admet un élément passé en argument de type Object, dans ce cas, il y a création d’un maillon (instance de la classe Maillon) avec l’élément suivant à null.

    La classe Stack admet les quatre méthodes publiques suivantes :

    • void push(Object object) place au sommet de la pile l’objet passé en argument
    • Object pop() retourne l’élément qui se trouve au sommet de la pile et place l’élément suivant au sommet de la pile.
    • Object first() accède au premier élément de la pile sans modifier la pile boolean
    • isEmpty() retourne true si la pile est vide



    Méthodes de réalisation de la classe Stack:

    •void setTop(Object o) établit le sommet de la pile avec le maillon passé en argument

    • Maillon getTop() retourne le sommet de la pile

    • Maillon next() retourne le maillon suivant



    . Les messages suivent le format suivant:

    System.out.println("*** invocation de méthode *** résultat attendu :: "+ invocation de
    méthode);
    Par exemple pour la sortie:
    L’exécution de System.out.println("*** p.isEmpty() *** must be true :: "+ p.isEmpty());
    a donné : *** p.isEmpty() *** must be true :: true
    L’exécution finale est :

    *** p.isEmpty() *** must be true :: true
    *** {titi, toto} *** :: {titi,toto }
    *** p.isEmpty() *** must be false :: false
    *** {3
    , titi, toto} *** :: {3,titi,toto }
    *** p.pop() *** must be : 3 :: 3
    *** p.pop() *** must be : titi :: titi
    *** {toto} :: {toto }
    *** p.first() *** must be : toto :: toto
    *** p *** must be : {toto} :: {toto }
    *** p *** must be : {} :: {}

    J'ai pensé faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    main{
        Object Stack p;
     
        if (p.getTop == null){
            Object Stack p;
            system.out.println("p.isEmpty() *** must be true::" p.isEmpty);
     
        }else{
            system.out.println("p.isEmpty() *** must be false::" p.isEmpty)
        }
    }
    Mais je ne fais pas explicitement d'invocation de la méthode et je vois pas comment traiter la deuxième ligne par exemple.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Déjà, il faut que tu crées une instance de Stack (je t'ai indiqué un exemple de code dans l'autre discussion, a la fin du message).

    Ensuite, tu ne dois pas appeler getTop() en dehors de Stack (c'est bien pour ça qu'on la met private) : pour tester si la Stack est vide, on utilise la méthode isEmpty() que tu dois coder pour qu'elle retourne true si getTop() retourne null, et false sinon.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/06/2007, 18h48
  2. Comment afficher des JPEG dans une application Delphi ?
    Par Bouguennec dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/09/2005, 21h18
  3. [SQL server] Comment Fusionner des données dans une requête
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/07/2005, 15h24
  4. Comment stocker des images dans une base de données ?
    Par [Silk] dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2005, 11h29
  5. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09

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