因此,我是一名学习程序员,两个月前在我的大学里开始学习Java。我真的很喜欢在业余时间编程,而我目前正在尝试制作游戏。目前只有一个我无法解决的问题。
我有一个名为Move的类,并在名为Start的类中声明:
Move move1 =新的Move();
现在,当我返回Move类时,我想访问此move1,但它不允许我进行。它说:类名无法解析。
澄清:
public class Move {
private String s = null;
public void setName(String s) {
name = s;
}
public String getName() {
return name;
}
public void setList() {
System.out.println(move1.getName() + move2.getName()); // This won't work
}
}
和开始课程:
public class Start {
public static void main(String[] args) {
Move move1 = new Move();
Move move2 = new Move();
move1.setName(kick);
move2.setName(punch);
}
}
如果有人可以帮助我,那就太好了!
-编辑
好!我得到了一些反应,但并没有真正得到所需的答案。我知道现在可以使用
this
代替对象名称,但是如果我想使用第二个对象怎么办?我更改了上面的代码。 最佳答案
您遇到的问题是名称set1和move2在setList方法中超出范围。它们在Start.main中定义为局部变量,因此它们仅在此处可见。
您可以通过多种方式解决此问题。最简单的方法是将setList方法移至Start。因为您是从main(一个静态方法)调用它的,所以setList也必须是静态的。public class Start { public static void main(String[] args) { Move move1 = new Move(); Move move2 = new Move(); move1.setName(kick); move2.setName(punch); setList(move1, move2); } public static void setList(Move move1, Move move2) { System.out.println(move1.getName() + move2.getName()); }}
如果您认为setList应该在Move类中,则需要将第二步作为参数传递。public class Move { ... public void setList(Move other) { System.out.println(this.getName() + other.getName()); }}