这个问题在这里已经有答案了:
“找不到符号”或“无法解析符号”错误是什么意思(15个答案)
三小时前关门了。
我叫伊斯特000。这是一个大学挑战。
我想更改成员的顺序,我想attackwithall()被链接。详细讲解公共课作业02A,
白色,黑色,黄色,黄色
↓ ap.rotate()
黑色,黄色,白色,黄色
请检查冒险家,战士,魔术师和派对。另一个代码是问题语句的副本。
错误消息:找不到符号=エラー:シンボルを見つけられません.
请忽略//ひだりにずらす.
クラス = 班级,シンボル = 符号,メソッド = 方法,場所 = 地点。
在此处输入图像描述
我很抱歉我的英语不好。
package exer3.person;
public class Person {
private String name;
public Person() {
setName("no name");
}
public Person(String name) {
this();
setName(name);
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
/////////////
package exer3.person;
public class Adventurer extends Person{
public Adventurer(){
}
public Adventurer(String name){
super(name);
}
public String attack(){
return "Yaa";
}
}
///////
package exer3.person;
public class Fighter extends Adventurer{
public Fighter(){
}
public Fighter(String name){
super(name);
}
public String attack(){
return "zap";
}
}
/////////////////
package exer3.person;
public class Magician extends Adventurer{
public Magician(){
}
public Magician(String name){
super(name);
}
public String attack(){
return "kaboom";
}
}
///////////
package exer3.person;
import java.util.ArrayList;
import java.util.StringJoiner;
public class Party <P extends Person> {
ArrayList<P> member;
public Party() {
member = new ArrayList<>();
}
public void add(P one) {
member.add(one);
}
public int size() {
return member.size();
}
@Override
public String toString() {
StringJoiner j = new StringJoiner(", ");
for (P one : member)
j.add(one.getName());
return j.toString();
}
}
///////////
package exer3.person;
import java.util.StringJoiner;
public class AdvParty extends Party<Adventurer>{
public AdvParty(){
super();
}
public void rotate(){
if(size()<=1){
return;
}
String first = member(0);
for(int i=0;i<size()-1;i++){
member(i) = member(i+1);
}
member(size()-1) = first;
}
public String attackWithAll(){
StringJoiner j = new StringJoiner(", ");
for(P one : member){
j.add(one.Attack());
return j.toString();
}
}
}
//////////////////////First challenge
package exer3.person.tester;
import exer3.person.*;
public class Homework02a{
public static void main(String[] args){
AdvParty ap = new AdvParty();
ap.add(new Fighter("white"));
ap.add(new Fighter("black"));
ap.add(new Magician("yellow"));
System.out.println(ap);
System.out.println(ap.attackWithAll());
ap.rotate();
System.out.println(ap);
System.out.println(ap.attackWithAll());
}
}
/////////Second challenge
package exer3.person.tester;
import exer3.person.*;
public class Homework02b{
public static void main(String[] args){
AdvParty ap = new AdvParty();
System.out.println(ap);
System.out.println(ap.attackWithAll());
ap.rotate();
System.out.println(ap);
System.out.println(ap.attackWithAll());
}
}
///Third challenge
package exer3.person.tester;
import exer3.person.*;
public class Homework02c{
public static void main(String[] args){
AdvParty ap = new AdvParty();
ap.add(new Fighter("white"));
System.out.println(ap);
System.out.println(ap.attackWithAll());
ap.rotate();
System.out.println(ap);
System.out.println(ap.attackWithAll());
}
}
1条答案
按热度按时间bxfogqkk1#
你在工作中犯了一些小错误
AdvParty
班级。首先,有必要了解从数据库中检索元素的正确方法
ArrayList
根据它的索引。你应该找回members.get(0)
. 还有,就你而言,members
是冒险家列表,因此不能将其分配给String
班级。你应该把它分配给Adventurer
类型如下:另外,要将项添加到
ArrayList
,你应该打电话add
将索引作为第一个参数传递。所以,你的方法应该是这样的:你的
attackWithAll
方法也有错误。member
是一个Adventurer
,因此for循环应如下所示: