向数组列表添加类

时间:2019-01-07 04:05:49

标签: java class arraylist

完成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

4 个答案:

答案 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);
         } 

     }