URL: https://linuxfr.org/forums/programmation-java/posts/port%C3%A9e-des-m%C3%A9thodes Title: portée des méthodes Authors: Le Gall Sébastien Date: 2010年11月18日T16:54:35+01:00 Tags: Score: -1 Bonjour à tous, Je débute en Java et j'ai pour exercice de réaliser une mini calculatrice qui ne prend pas en compte les priorités dans les opérations. Voici le code d'une class Calto qui comprend la définition d'une méthode calculate(String arg) qui prend comme paramètre une chaine de caractère et étudie cette chaine mot par mot pour identifier l'opération demandé et la réalisé. Le code ci-dessous ne marche pas. Eclipse me dit qu'il y a un problème lors de la définition de mes méthodes auxiliaires. Il y a un problème de porté des méthodes auxiliaires. Le problème se situe dans les mots clef public static je pense. Mais je ne sais pas comment résoudre le pb. Merci de votre aide. public class Calto { £spaces£ £/spaces£/* Nous allons développer une calculatrice.*/ £spaces£ £/spaces£ £spaces£ £/spaces£public static double calculate(String arg){ £spaces£ £/spaces£ £spaces£ £/spaces£ £spaces£ £/spaces£//Définition des variables; £spaces£ £/spaces£ £spaces£ £/spaces£//variable d'opération. Peut être : 1, 2, 3 ou 4 correspondant respectivement à +, -, /, x £spaces£ £/spaces£int op = 0; £spaces£ £/spaces£ £spaces£ £/spaces£//Variable de lecture : 0 si la dernière lecture était un chiffre. 1 sinon £spaces£ £/spaces£int lec = 0; £spaces£ £/spaces£ £spaces£ £/spaces£//variable résultat £spaces£ £/spaces£double res = 0; £spaces£ £/spaces£ £spaces£ £/spaces£//Définition des méthodes auxiliaires. £spaces£ £/spaces£//On vérifie que l'élément est bien une opération £spaces£ £/spaces£public static boolean isOp(String v){ £spaces£ £/spaces£ £spaces£ £/spaces£if(v == "+" || v == "-" || v == "/" || v == "*"){ £spaces£ £/spaces£return true; £spaces£ £/spaces£ £spaces£ £/spaces£} £spaces£ £/spaces£else{ £spaces£ £/spaces£return false; £spaces£ £/spaces£} £spaces£ £/spaces£ £spaces£ £/spaces£} £spaces£ £/spaces£ £spaces£ £/spaces£//On sait que l'élément est un opérateur. Mais lequel? £spaces£ £/spaces£public static boolean whichOp(String v){ £spaces£ £/spaces£if(v=="+"){ £spaces£ £/spaces£op = 1; £spaces£ £/spaces£} £spaces£ £/spaces£else{ £spaces£ £/spaces£if(v=="-"){ £spaces£ £/spaces£op = 2; £spaces£ £/spaces£} £spaces£ £/spaces£else{ £spaces£ £/spaces£if(v=="/"){ £spaces£ £/spaces£op = 3; £spaces£ £/spaces£} £spaces£ £/spaces£else{ £spaces£ £/spaces£if(v=="*"){ £spaces£ £/spaces£op = 4; £spaces£ £/spaces£} £spaces£ £/spaces£} £spaces£ £/spaces£} £spaces£ £/spaces£} £spaces£ £/spaces£} £spaces£ £/spaces£ £spaces£ £/spaces£ £spaces£ £/spaces£//On parcours l'ensemble des éléments constituant l'expression à évaluer £spaces£ £/spaces£String[] t = arg.split(" "); £spaces£ £/spaces£ £spaces£ £/spaces£for(String v : t){ £spaces£ £/spaces£ £spaces£ £/spaces£//Soit l'élément est une opération... £spaces£ £/spaces£if(isOp(v)){ £spaces£ £/spaces£op = whichOp(v); £spaces£ £/spaces£lec = 1; £spaces£ £/spaces£} £spaces£ £/spaces£ £spaces£ £/spaces£//Soit l'élément est un chiffre £spaces£ £/spaces£if(isNumeric(v)){ £spaces£ £/spaces£if(lec==0){ £spaces£ £/spaces£res = Integer.parseInt(v); £spaces£ £/spaces£} £spaces£ £/spaces£else{ £spaces£ £/spaces£if(lec==1){ £spaces£ £/spaces£res = makeOp(res, op, Integer.parseInt(v)); £spaces£ £/spaces£} £spaces£ £/spaces£} £spaces£ £/spaces£} £spaces£ £/spaces£} £spaces£ £/spaces£ £spaces£ £/spaces£}