为了提出这个问题,我是Java的新手。
我有称为Game,Player和SystemIO的类。我的main()在Game类中。下面是它的代码
public static void main(String[] args){
SystemIO systemIO = new SystemIO();
}
一旦调用SystemIO,它的构造函数将创建带有行的Player实例
Player player = new Player("Bob");
Player构造函数将1个参数作为字符串。
在SystemIO类中,我还有一个方法可以从“播放器”实例中访问信息。
player.getName();
[当我尝试执行此操作时,控制台会报告SystemIO.java:339:错误:找不到符号
我已经检查过,我没有试图用大写的“ Player”来引用类名。就像我说的那样,我对Java非常陌生,只是想尽全力以赴,但我相信这是一个范围问题...但是我不确定。
编辑以添加可复制的代码:
Game.java
package com.myapps;
import com.myapps.system.SystemIO;
public class Game{
public static void main(String[] args){
SystemIO systemIO = new SystemIO();
}
}
Player.java
package com.myapps.player;
public class Player{
String name;
public Player(String playerName){
name = playerName;
}
}
public String getName(){
return name;
}
SystemIO.java
package com.myapps.system;
import com.myapps.player.Player;
public class SystemIO{
public SystemIO(){
Player player = new Player("Bob");
readPlayerName();
}
public void readPlayerName(){
System.out.println(player.getName());
}
}
使播放器成为类变量。
将您的班级中的某人放置:
Player player;
并将您的构造函数的代码更改为:
player = new Player("Bob");
这称为范围错误。您希望在类的所有方法中都可以访问的变量应该在类中声明,而不是在一个特定的方法中声明(在您的情况下,您在构造函数中进行了声明)