Erreur Java: début d'expression illégal
Je suis fondamentalement de raffinage, en le complétant et en essayant de compiler un code de test à partir d'un ouvrage de référence pour java débutants. L'objectif est de créer un jeu de devinettes dans lequel la cible est située à 3 continue de cellules (j'essaie de tenir les lieux dans un tableau) et l'utilisateur devine la cellule ne. pour détruire la cible de la cellule par cellule.
J'ai vérifié une demi-douzaine de posts ici sur la même erreur, mais je ne pouvais pas comprendre ce qui n'allait pas.
C'est mon erreur:
test.java:5: error: illegal start of expression
public int[] locations={1,2,3};
^
1 error
et mon code est:
public class test{
public static void main(String[] args){
test dot=new test();
public int[] locations={1,2,3};
dot.setLocationCells(locations);
String userGuess="2";
String result = dot.checkYourself(userGuess);
String testResult="failed";
if(result.equals("hit")){
testResult="passed";
}
System.out.println(testResult);
}
public String checkYourself(String stringGuess){
int guess=Integer.parseInt(stringGuess);
String result="miss";
int numOfHits=0;
for(int cell:locations){
if(guess==cell){
result="hit";
numOfHits++;
break;
}
}
if(numOfHits==locations.length){
result="kill";
}
System.out.println(result);
return result;
}
public void setLocationCells( int[] locations){
int[] locns;
locns=locations;
}
}
source d'informationauteur AnujaPL
Vous devez vous connecter pour publier un commentaire.
Méthodes peut déclarer seulement les variables locales. C'est pourquoi le compilateur signale une erreur lorsque vous essayez de le déclarer comme public.
Dans le cas de variables locales que vous ne pouvez pas utiliser n'importe quel type de accesseur (public, protected ou private).
Vous devez également garder une trace de ce que statique mot-clé signifie. Dans la méthode
checkYourself
vous utilisez la déclaration delocations
.La statique mot-clé distincte les éléments qui sont accessibles avec la création de l'objet. Il pour il y ne font pas partie de l'objet lui-même.
Supprimer la
public
mot clé deint[] locations={1,2,3};
. Un modificateur d'accès n'est pas autorisé à l'intérieur d'une méthode, comme son accessbility est défini par son la portée de la méthode.Si votre objectif est d'utiliser cette référence dans de nombreux une méthode, vous pouvez déplacer la déclaration en dehors de la méthode.
Déclarer les variables ci-dessus au-dessus de la principale méthode et le code se compile très bien.
Déclarer
public static int[] locations={1,2,3};
en dehors de la méthode main.