完成OODP课程后,我目前正在使用Java类作为辅助项目来编码RPG。我有3个与此问题有关的课程。职业班,骑士班和技能班。 Knight从Job类继承属性,并且与Skills类具有“具有”的关系。骑士舱的代码段如下所示。我的问题是倒数第二行,skill.add(slash);出现多个错误。我仅对整数数组列表进行了测试,以将整数添加到数组列表中,从而导致相同的错误集。我的代码或语法在这里有问题吗?
import java.util.ArrayList;
public class Knight extends Job {
public Knight() {
super("Knight");
}
private ArrayList<Skills> skills = new ArrayList<Skills>();
Skills slash = new Skills(5, 1, "Slash");
skills.add(slash);
}
这是Skills类的构造函数
public Skills(int dps, int mana, String name) {
this.dps=dps;
this.mana=mana;
this.name=name;
}
这些是我遇到的错误
Multiple markers at this line
- Syntax error, insert ")" to complete MethodDeclaration
- Syntax error, insert "SimpleName" to complete
QualifiedName
- Syntax error on token ".", @ expected after this token
- Syntax error, insert "Identifier (" to complete
MethodHeaderName
答案 0 :(得分:1)
您不能在类内部直接声明。您必须将其放入构造函数,方法或初始化程序中。
在您的情况下,只需将skills.add(slash);
放入构造函数中即可。
答案 1 :(得分:1)
按照以下步骤更改您的骑士代码
import java.util.ArrayList;
private ArrayList<Skills> skills = new ArrayList<Skills>();
Skills slash = new Skills(5, 1, "Slash");
public class Knight extends Job {
public Knight() {
super("Knight");
skills.add(slash);
}
}
如果要在运行时增加更多技能,请编写一种方法。
答案 2 :(得分:1)
private ArrayList<Skills> skills = new ArrayList<Skills>();
Skills slash = new Skills(5, 1, "Slash");
skills.add(slash);
部分以上或至少skills.add(slash);
应该在以下内容之一之内,
答案 3 :(得分:1)
您尚未在方法/构造函数/初始化程序中放置“ skills.add(slash)”语句,这就是为什么您会出错的原因。只需将代码更改为-
import java.util.ArrayList;
public class Knight extends Job {
private ArrayList<Skills> skills = new ArrayList<Skills>();
Skills slash = new Skills(5, 1, "Slash");
public Knight() {
super("Knight");
skills.add(slash);
}
}