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 :

Question sur les constructeurs


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 50
    Par défaut Question sur les constructeurs
    Bonjour,

    Je suis le cours "Java pour les enfants". Je ne comprends pas bien le constructeur de l'exemple "Calculatrice" de la page 55 du PDF.
    La méthode "main" de la class "Calculatrice" propose un constructeur instanciant la classe par l'objet "calc" (ligne 133) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static void main(String[] args) {
    // Instancie la classe Calculatrice
    Calculatrice calc = new Calculatrice();
    }
    L'objet "calc" n'est jamais rappelé dans le programme.
    Quel est le rôle de cet objet ?

    Vous remerciant de vos éclaircissements.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Je n'ai pas le PDF sous la main, mais l'idée dans ce code, c'est que ce soit le contructeur de Calculatrice que fasse tout le travail. En gros, je suppose qu'il va créer une fenêtre et l'afficher. Une fois la fenêtre affichée, c'est swing qui prend le relais en appelant les différents méthodes du code à partir des évènements souris / clavier. Il n'est donc pas nécessaire de faire plus dans le main que d'afficher cette fenêtre.

  3. #3
    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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Salut,

    Pour compléter ce que dit @Tchize_, à partir du contenu du PDF.

    Un constructeur comme n'importe quelle méthode exécute le code qui s'y trouve, lorsqu'il est invoqué (ce que fait new Calculatrice() : si tu regardes le code dans le constructeur, on voit que, en résumé, on y créé un JPanel (un composant graphique destiné à afficher plusieurs composants graphiques) dans lequel on met des boutons (JButton), puis on met ce JPanel dans une fenêtre (JFrame) et on afficher cette fenêtre par frame.setVisible(true);.

    Ce code n'est qu'un exemple qui affiche les boutons comme dans l'image montrée juste avant (les boutons ne font rien si on clique dessus) :

    Nom : Calculatrice.png
Affichages : 103
Taille : 38,1 Ko

    La variable calc n'est jamais utilisée ensuite dans la méthode main() : elle ne sert à rien, et on pourrait écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public static void main(String[] args) {
       new Calculatrice();
    }
    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.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 49
    Par défaut
    Bonjour,

    Alors je viens de voir le cours et c'est très simple :

    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
    57
    58
    59
    60
    61
    62
     Calculatrice() {
        contenuFenêtre = new JPanel();
     
        // Affecte un gestionnaire de présentation à ce panneau
        BorderLayout dispositionl = new BorderLayout(); 
        contenuFenêtre.setLayout(dispositionl);
     
        // Crée le champ d'affichage et le positionne dans   
        // la zone nord de la fenêtre
        champAffichage = new JTextField(30);
        contenuFenêtre.add("North", champAffichage);
     
        // Crée les boutons en utilisant le constructeur de
        // la classe JButton qui prend en paramètre le libellé 
        // du bouton 
        bouton0 = new JButton("0");
        bouton1 = new JButton("1");
        bouton2 = new JButton("2");
        bouton3 = new JButton("3");
        bouton4 = new JButton("4");
        bouton5 = new JButton("5");
        bouton6 = new JButton("6");
        bouton7 = new JButton("7");
        bouton8 = new JButton("8");
        bouton9 = new JButton("9");
        boutonVirgule = new JButton(",");
        boutonEgale = new JButton("=");// Crée le panneau avec le quadrillage qui contient
        // les 12 boutons - les 10 boutons numériques et ceux
        // représentant la virgule et le signe égale
        panneauChiffres = new JPanel();
        GridLayout disposition2 = new GridLayout(4, 3); 
        panneauChiffres.setLayout(disposition2);
     
        // Ajoute les contrôles au panneau panneauChiffres
        panneauChiffres.add(bouton1);
        panneauChiffres.add(bouton2);
        panneauChiffres.add(bouton3);
        panneauChiffres.add(bouton4);
        panneauChiffres.add(bouton5);
        panneauChiffres.add(bouton6);
        panneauChiffres.add(bouton7);
        panneauChiffres.add(bouton8);
        panneauChiffres.add(bouton9);
        panneauChiffres.add(bouton0);
        panneauChiffres.add(boutonVirgule);
        panneauChiffres.add(boutonEgale);
     
        // Ajoute panneauChiffres à la zone centrale de la 
        // fenêtre
        contenuFenêtre.add("Center", panneauChiffres);
     
        // Crée le cadre et lui affecte son contenu	               
        JFrame frame = new JFrame("Calculatrice");
        frame.setContentPane(contenuFenêtre);
     
        // Affecte à la fenêtre des dimensions suffisantes pour	  
        // prendre en compte tous les contrôles
        frame.pack(); 
     
        // Enfin, affiche la fenêtre
        frame.setVisible(true);
      }
    Si tu regardes bien TOUT s'exécute dans le constructeur : de la construction de ton objet calculatrice à son affichage donc pour résumer ton objet "calc" ne sert a rien effectivement mais c'est pour te faire comprendre la construction de l'Objet et te faire faire un peu de graphisme mais si le warning te gênes tant tu peux soit virer ton objet calc ce qui donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static void main(String[] args) {
    // Instancie la classe Calculatrice
    new Calculatrice();
    }
    Soit enlever tout la partie affichage (placement etc) de ton constructeur et les mettres dans une autre méthode ce qui donnerai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static void main(String[] args) {
    // Instancie la classe Calculatrice
    Calculatrice calc = new Calculatrice();
    calc.placement(); //méthode appartenant à la classe Calculatrice que tu aura créer évidemment
    }
    Après je n'ai pas lu les autres pages du cours donc je sais pas si il y a un objectif particulier pour l'objet calc mais dans tout les cas ca ne te gênera pas dans la poursuite du cours

    J'espère que ça t'as aidé

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 49
    Par défaut
    Ha ben joel.drigo et tchize ont été plus rapide, bah je laisse mon post car il y a tout le code du constructeur pour ceux que ça intéresserait

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 50
    Par défaut
    Voici le lien de la page du cours (le code est dans le paragraphe VII-H):
    http://java.developpez.com/livres-co...e=calculatrice
    Je vais étudier avec soin vos différentes réponses.
    Je vous dis grand merci à tous.

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

Discussions similaires

  1. [POO] Question sur les constructeurs
    Par Paulo62 dans le forum Général Python
    Réponses: 3
    Dernier message: 14/08/2009, 17h00
  2. Question sur les constructeurs
    Par TocTocKiéLà? dans le forum C++
    Réponses: 2
    Dernier message: 27/06/2007, 17h52
  3. [POO]Question sur les constructeurs
    Par Burinho dans le forum Langage
    Réponses: 16
    Dernier message: 08/04/2006, 21h56
  4. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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