Java运行 显示非法的表达式开始 这是为什么呀?

代码如下publicabstractclassMonster{publicStringname;publicdoublespAttackProbability=0.2;p... 代码如下public abstract class Monster{ public String name; public double spAttackProbability=0.2; public Monster(String name){ this.name=name;} public Monster(String name,double spAttackProbability){ this.name=name; this.spAttackProbability=spAttackProbability;} final public int attack(){ int X = 0; if(Math.random()<spAttackProbability) X=specialAttack(); else{ X=(int) (Math.random() * 5 + 1); System.out.println(name+",of type"+this.getClass() +",attacks generically:"+X+"points damage caused."); return X; } public abstract int specialAttack(); public void move(int direction){ switch(direction){ case 1: System.out.println(this.name+" is moving 1 step NORTH."); System.out.println(); break; case 2: System.out.println(this.name+" is moving 1 step EAST."); System.out.println(); break; case 3: System.out.println(this.name+" is moving 1 step SOUTH."); System.out.println(); break; case 4: System.out.println(this.name+" is moving 1 step WEST."); System.out.println(); break;}}} 展开
 我来答
神坑小爱人
2019-05-14
知道答主
回答量:19
采纳率:0%
帮助的人:2.2万
展开全部

attack()没有返回值,我给你改了下

public abstract class Monster {
public String name;
public double spAttackProbability = 0.2;

public Monster(String name) {
this.name = name;
}

public Monster(String name, double spAttackProbability) {
this.name = name;
this.spAttackProbability = spAttackProbability;
}

final public int attack(){ 
int X = 0; 
if(Math.random()<spAttackProbability) 
X=specialAttack(); 
else{ 
X=(int) (Math.random() * 5 + 1);
System.out.println(name+",of type"+this.getClass() +",attacks generically:"+X+"points damage caused."); 
return X;
}
return X;
}

public abstract int specialAttack();

public void move(int direction) {
switch (direction) {
case 1:
System.out.println(this.name + " is moving 1 step NORTH.");
System.out.println();
break;
case 2:
System.out.println(this.name + " is moving 1 step EAST.");
System.out.println();
break;
case 3:
System.out.println(this.name + " is moving 1 step SOUTH.");
System.out.println();
break;
case 4:
System.out.println(this.name + " is moving 1 step WEST.");
System.out.println();
break;
}
}
}
dagewxw
2019-05-13 · TA获得超过5929个赞
知道大有可为答主
回答量:3523
采纳率:67%
帮助的人:978万
展开全部
这个方法你写到了另一个方法内, 括号问题吧算是
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式