【发布时间】:2015-02-01 14:06:55
【问题描述】:
我正在制作一个简单的基于文本的 rpg。我收到此错误:"illegal start of expression"。当我从 String 敌人中删除 public 修饰符时,它修复了表达式错误的非法开始,但会产生两个 "cannot find symbol" 错误。
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 应该怎么做?