我基本上是在完善,完成并尝试从Java初学者的参考书中编译测试代码。目的是创建一个猜谜游戏,其中目标位于3个连续的单元格中(我将位置保持在数组中),而用户则猜测该单元格的编号。逐个摧毁目标细胞。
我在这里检查了六则关于同一错误的帖子,但我无法弄清楚出了什么问题。
这是我的错误:
test.java:5: error: illegal start of expression
public int[] locations={1,2,3};
^
1 error
我的代码是:
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;
}
}
方法只能声明局部变量。这就是为什么当您尝试将其声明为public时,编译器会报告错误的原因。
对于局部变量,您不能使用任何类型的访问器(公共,受保护或私有)。
您还应该知道static关键字的含义。在方法中checkYourself
,您使用Integer数组locations
。
static关键字区分对象创建可访问的元素。因此,它们不是对象本身的一部分。
public class Test { //Capitalized name for classes are used in Java
private final init[] locations; //key final mean that, is must be assigned before object is constructed and can not be changed later.
public Test(int[] locations) {
this.locations = locations;//To access to class member, when method argument has the same name use `this` key word.
}
public boolean checkYourSelf(int value) { //This method is accessed only from a object.
for(int location : locations) {
if(location == value) {
return true; //When you use key word return insied of loop you exit from it. In this case you exit also from whole method.
}
}
return false; //Method should be simple and perform one task. So you can get more flexibility.
}
public static int[] locations = {1,2,3};//This is static array that is not part of object, but can be used in it.
public static void main(String[] args) { //This is declaration of public method that is not part of create object. It can be accessed from every place.
Test test = new Test(Test.locations); //We declare variable test, and create new instance (object) of class Test.
String result;
if(test.checkYourSelf(2)) {//We moved outside the string
result = "Hurray";
} else {
result = "Try again"
}
System.out.println(result); //We have only one place where write is done. Easy to change in future.
}
}
我基本上是在精炼、完成并尝试从java初学者参考书中编译测试代码。目标是创建一个猜测游戏,其中目标位于3个连续的单元中(我在阵列中保留位置),用户猜测单元号以逐个单元摧毁目标单元。 我在这里查看了六篇关于同一个错误的帖子,但我不知道出了什么问题。 这是我的错误: 我的代码是:
我不明白第77行不能从这个开始,但我用“public String showTrack()”开始了类似的内容。 这是我当前的代码:
我正在从其他框架生成一个JTabbedFrame。
为什么我会得到:非法的表达式开始-公共静态int noOfLetters(String str){error?我如何修复它?
问题内容: 我在注释标记的位置的以下代码中收到“表达式的非法开头”错误。我该如何纠正该错误? 问题答案: 您无法在Java中将方法彼此嵌套。移动外部方法。
喂!我开始学习编程,并从一个奇怪的计算器的方式开始(我知道它的奇怪我是如何做的)。但在这段小代码中,我遇到了Java的一个问题:表达式的非法开始是因为“if(numberTest.equals(+))”,但当我输入“if(numberTest==/)”时,也会出现一个错误。有没有帮助解决这个问题,因为我没有找到任何东西,不知道该搜索什么?(:祝你们今天愉快!保重!)