簡體   English   中英

向數組列表添加類

[英]Adding a class to an array list

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

您不能在類內部直接聲明。 您必須將其放在構造函數,方法或初始化程序中。

在你的情況下,只需把skills.add(slash); 在構造函數中。

如下更改您的騎士代碼

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

}

如果要在運行時增加更多技能,請編寫一種方法。

private ArrayList<Skills> skills = new ArrayList<Skills>();
Skills slash = new Skills(5, 1, "Slash");
skills.add(slash);

高於或至少skills.add(slash); 應該在以下內容之一內,

  • 方法內部
  • 里面的主要方法
  • 在構造函數內部
  • 在實例初始化程序塊內部或靜態初始化程序塊中

您尚未在方法/構造函數/初始化程序中放置“ 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);
         } 

     }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM