2 réponses
Bonsoir,
Cela est tout à fait normal.
En effet la fonction System.out.println doit afficher quelque chose donc une vrai variable avec un valeur non null.
Ici l'erreur te dit void type is not allowed here, ce qui est normal puisque tu lui fait directement System.out.println(calcul.calc()) .
OR calcul.calc() ne retourne aucun résultat ou variable si tu préfères qui puisse être affiché du genre un entier ou une String, puisque la fonction calc() est définie en public void et non en public String calc() ou encore public int calc() par exemple.
Tu ne peux pas faire non plus : int resultat = calc(arg a); puisque calc() comme dit plus haut est définie en VOID.
Donc au lieu de mettre public void calc(arg a), remplace ceci par public int calc(arg a) ou encore int par le type de variable qui doit être retourné. ET ne pas oublier de faire un return.
Pour récapituler et par exemple :
public class calcul
{
int a = 10;
public calcul()
{
.......
System.out.println("Résultat de l'opération : "+calc(a));
}
public int calc(int parameter)
{
System.out.println("On ne fait que retourner comme résultat la valeur de l'entier passé en paramètre");
return parameter;
}
}
Voilà j'espère que tu auras compris et si tu as des questions n'hésite pas.
Cela est tout à fait normal.
En effet la fonction System.out.println doit afficher quelque chose donc une vrai variable avec un valeur non null.
Ici l'erreur te dit void type is not allowed here, ce qui est normal puisque tu lui fait directement System.out.println(calcul.calc()) .
OR calcul.calc() ne retourne aucun résultat ou variable si tu préfères qui puisse être affiché du genre un entier ou une String, puisque la fonction calc() est définie en public void et non en public String calc() ou encore public int calc() par exemple.
Tu ne peux pas faire non plus : int resultat = calc(arg a); puisque calc() comme dit plus haut est définie en VOID.
Donc au lieu de mettre public void calc(arg a), remplace ceci par public int calc(arg a) ou encore int par le type de variable qui doit être retourné. ET ne pas oublier de faire un return.
Pour récapituler et par exemple :
public class calcul
{
int a = 10;
public calcul()
{
.......
System.out.println("Résultat de l'opération : "+calc(a));
}
public int calc(int parameter)
{
System.out.println("On ne fait que retourner comme résultat la valeur de l'entier passé en paramètre");
return parameter;
}
}
Voilà j'espère que tu auras compris et si tu as des questions n'hésite pas.
Merci beaucoup, c'est très gentil de ta part de répondre.
OK, j'ai compris ma faute, mais le problème est que ma méthode peut retourné des résultats avec des types différents? c'est pour cette raison que j'ai pensé d'utiliser 'void'.
Merci.
calc(String string)
calc(int integer)
etc ...
Une seule fonction pour un seul type de dopnnées.
Mais tu peux très bien faire plusieurs fonctions calc mais avec un paramétrage différent, un coup une String, un coup un int comme j'ai écrit plus haut.
je vais voir avec les types retournés.
Merci.