Bonjour, j'ai essayé de créer une méthode toute simple qui ne fait qu'additionner deux nombres, mais elle ne marche pas.
package com.company;
public class Main {
public static void main(String[] args) {
int A = 3, B = 5;
int reponse1;
int reponse2 = reponse1.resultat();
}
public static int resultat(int A, int B)
{
return (int) (A+B);
}
}
L'erreur est la suivante:
Error:(8, 32) java: int cannot be dereferenced
Si quelqu'un pouvait m'expliquer le problème s'il vous plaît...
Et aussi, pourquoi tu appels ta méthode sur un int ?
Tu es dans la même classe.
package com.company;
public class Main {
public static void main(String[] args) {
int A = 3, B = 5;
int reponse1;
int reponse2 = resultat(A, B);
}
public static int resultat(int A, int B)
{
return (int) (A+B);
}
}
Pourquoi as-tu mis static, ô toi le créateur de la méthode ?
- Edité par michelbillaud il y a environ 1 heure
pour que la méthode soit utilisable partout dans la classe?
jule04 a écrit:
Et aussi, pourquoi tu appels ta méthode sur un int ?
Tu es dans la même classe.
package com.company;
public class Main {
public static void main(String[] args) {
int A = 3, B = 5;
int reponse1;
int reponse2 = resultat(A, B);
}
public static int resultat(int A, int B)
{
return (int) (A+B);
}
}
Effectivement, par contre le static tu n'as pas la bonne justification. Tu peux la mettre en private int résultat, et tu auras accès à ta méthode A L'INTERIEUR de ta classe. Mais pas à l'extérieur. Le contexte static est assez spécial et peu utilisé (enfin, ça dépend vraiment des cas).
Renseigne toi un peu plus sur ce mot clé static, il est important de savoir à quoi il correspond.
Toutes les méthodes de calcul mathématique sont statiques, par exemple.
Mais bon, le problème fondamental, c'est d'essayer de programmer en écrivant n'importe quoi et en modifiant au pif. La probabilité d'y arriver est très faible, et ça va être générateur de frustrations.
On peut aussi interroger l'utilité du transtypage (int) devant A+B. Et de la variable reponse1 inutilisée.
Pour en revenir au problème initial, quand on appelle x.f(), il faut que x soit une variable d'un type pour lequel il existe une méthode f. Elle contiendra une référence vers un objet, cette reference sera dereferencée pour accéder à la méthode f.
Si x est un int (type primitif), on ne peut pas le dereferencer, parce que ce n'est pas une référence. D'où le message.
- Edité par michelbillaud 18 février 2020 à 7:59:48
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Site personnel : Julien Gidel - AutoMate - PHPresentation
Site personnel : Julien Gidel - AutoMate - PHPresentation