Conception d'une calculatrice (objet) [Résolu]

Messages postés
2
Date d'inscription
mardi 29 avril 2014
Dernière intervention
29 avril 2014
-
Bonjour à tous,

voilà j'ai commencé l'apprentissage du JAVA. J'avais quelques notions en programmation mais n'ayant jamais pratiqué assidument je suis reparti de zéro pour être sur. Bref, c'est pour la petite histoire...

Venons-en au vif du sujet ! Je m'exerce en réalisant la traditionnelle calculatrice pour m'assurer de ma compréhension des JFrame, JButton et autre JPanel. Mais je me pose une question sur l'architecture du projet. Par cela, j'entends :

Pour créer ma calculatrice je créé une méthode avec un type de bouton perso et une pour mon écran (label).

La convention (si il y en a une ?) est-elle de plutôt créer une class externe (exemple un package nommé interface et deux classes, une bouton et une ecran) ou tout mettre dans ma classe Main ?

Alors je sais que pour une minuscule projet comme mon TP calculatrice ça ne change rien mais c'est histoire de prendre de bonne habitude.

Pour la solution "classe externe" je crois y voir l'intérêt de pouvoir modifier plus simplement la methode et avoir une lisibilité plus grande.

Pour la solution "tout dans le Main" j'y vois la solution de simplicité en terme de programmation car pour le moment je galère à essayer de mettre en place la premier ;-p.


Merci a tous par avance de vos précieux retours et conseils.

Cordialement.

Durf
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
2
Merci
Salut,

La décomposition en classe de ton projet t'appartient, il n'y a pas de "meilleure" solution, je peux t'en proposer une :
- Une classe Abstraite Bouton qui étend JButton
- Une classe BoutonChiffre qui étend Bouton
- Une classe BoutonOperateur qui étend Bouton
- Une classe Ecran qui étend JLabel
- Une classe Calculatrice qui étend JPanel

Calculatrice est un singleton accessible partout dans le code avec la méthode getInstance().
Les classes Bouton servent à modifier les valeurs de l'écran et envoient dans le singleton calculatrice les éléments qui permettront de faire le calcul.
La classe Ecran affiche

C'est peut être un peu complexe si tu commence mais cela te donnera une idée de ce que tu peux faire.
Tu peux opter pour une décomposition plus simple ou prendre celle là. Si tu ne comprend pas certains choses, dis le moi.

Bon courage.

Dire « Merci » 2

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
2
Date d'inscription
mardi 29 avril 2014
Dernière intervention
29 avril 2014
0
Merci
Tout d'abord, merci beaucoup pour ces précisions.

@cs_Julien39 :

Ok j'avoue que dans mon idée première se rapprochait de ta solution à ceci près que j'avais une classe Bouton sans "sous-classe". Mais ta proposition a le mérite d'être (en tout cas pour moi) explicite.
Si je comprends bien la classe Abstraite Bouton définit les paramètres graphiques ou visuels du bouton en gros la forme, taille, fond ect...
Et les deux autres classe bouton la création des différents bouton en fonction de leur utilisation (chiffre ou opérateur) mais en utilisant la méthode de création de la classe Abstraite.

Ai-je bien compris ?

Donc en gros je je le voulais c'est possible de faire un programme même énorme totalement dans le main ?

@Pharaonju :
J'utilise Eclipse !


Cordialement

Durf
Commenter la réponse de Durf
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
0
Merci
Oui, tu as bien compris l'idée.

Tu peux toujours tout faire dans une main, et même redéfinir des fonctions statiques dans la classe principale.

Mais dans ce cas là, tu ne fais pas de la programmation objet. Ce n'est ni bien ni mal, c'est un choix.

Mais tu risques d'avoir un code énorme et assez peu lisible, les objets Swing sont très clairement faits pour être utilisés avec une décomposition en classes de ton code, et donc, ca risque d'être très lourd à gérer.
Commenter la réponse de cs_Julien39
Messages postés
7
Date d'inscription
lundi 11 juin 2007
Dernière intervention
29 avril 2014
-2
Merci
Bjr. Trouve tois un IDE comme Netbeans. c'est plus facile.

--
cs_Julien39
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
-
Quel rapport avec la question ?
Commenter la réponse de Pharaonju

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.