我正在制作一个简单的基于文本的rpg。我收到了这个错误:“表达式的非法开始”
。当我从字符串中删除public修饰符时,它修复了表达式的非法开始错误,但创建了两个“找不到符号”
错误。
import java.io.*;
import java.util.*;
public class rpggame {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
for(;;)//Character Creation
{
//All the code here is irrelevant to my problem, removed for space
}
Enemy rat = new Enemy(5, 5, 5, 1);
Enemy slime = new Enemy(5, 5, 5, 1);
Enemy bat = new Enemy(5, 5, 5, 1);
Enemy bunny = new Enemy(5, 5, 5, 1);
System.out.println("Time to battle! What do you want to fight?\nA. Rat\nB. Slime\n C. Bat\n D.Bunny");
String enemyChoice = input.next();
public String enemy; //Error here
enemy = null;
switch(enemyChoice)
{
case "a":
case "A":
enemy = "Rat";
break;
case "b":
case "B":
enemy = "Slime";
break;
case "c":
case "C":
enemy = "Bat";
break;
case "d":
case "D":
enemy = "Bunny";
break;
}
battle(); //When I remove the public modifier from enemy, I get "cannot find symbol" here.
}//end of main method
public static class Enemy
{
public static int enemyDamage;
public static int enemySpeed;
public static int enemyDefense;
public static int enemyLevel;
Enemy(int Da,int Sp,int De,int Lv)
{
enemyDamage=Da;
enemySpeed=Sp;
enemyDefense=De;
enemyLevel=Lv;
}
public void battle() {
System.out.println("You have encountered " + rpggame.enemy + " Level" + enemyLevel); //When I remove the public modifier from enemy, I get "cannot find symbol" here.
}
}}//Closing brace for rpggame
public static void main
是一个函数,不是一个类。对于函数中的变量,不能使用指示符
如果对类成员使用“public”,则可以从外部指定其可见性
然而,函数中变量的作用域在函数中。从外面看不见。
Battle()需要一个(实例的)指示符。例如,
rat.battle();
最后,rpggame类没有名为“敌人”的字段
rpggame类中可能需要一个字段。例如。,
public class rpggame {
private Enemy enemy;
public static void main(String[] args) {
编译器不知道如何处理public关键字。您正在声明一个局部变量,因此可见性关键字是无用的。您还应该将其初始化为null或其他什么。
访问修饰符(public
、Private
和protected
)可以应用于字段(和方法以及类)。它们不能应用于局部变量,因为它没有意义。
局部变量可以从声明后的任何地方访问,在声明它们的块中,除了匿名类和lambda表达式(它们有特殊规则)内部之外。
我无法打印已声明的字符串。以下是代码: 下面是错误:
问题内容: 我基本上是在完善,完成并尝试从Java初学者的参考书中编译测试代码。目的是创建一个猜谜游戏,其中目标位于3个连续的单元格中(我将位置保持在数组中),而用户则猜测该单元格的编号。逐个摧毁目标细胞。 我在这里检查了六则关于同一错误的帖子,但我无法弄清楚出了什么问题。 这是我的错误: 我的代码是: 问题答案: 方法只能声明局部变量。这就是为什么当您尝试将其声明为public时,编译器会报告错
我的正则表达式是 当我在java中使用Pattern.complie()编译时,我得到了*非法重复字符* 我测试了这个正则表达式 当我编译这个时,它没有显示错误。 为什么会发生这种情况?
我不熟悉Javascript和正则表达式,所以我一直在研究如何使路由匹配所有以
为什么我会得到:非法的表达式开始-公共静态int noOfLetters(String str){error?我如何修复它?
我的代码是关于循环和方法的,这是一个让用户计算面积或使用4个基本数学运算的程序。(三角形、正方形、矩形)及其选择的进程:加法、减法、乘法和除法。 我想我正确地关闭了那里的加法函数,我已经检查了关闭每个函数,它们似乎工作得很好,除了加法函数,因为这是我唯一的错误。