[英]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.