Escribir el prólogo de la pregunta, soy muy nuevo en Java.
Tengo clases llamadas, juego, jugador, y SystemIO. Mi principal () está en la clase de juegos. A continuación se muestra su código
public static void main(String[] args){
SystemIO systemIO = new SystemIO();
}
Una vez SystemIO se llama, es crea una instancia de jugador con la línea
Player player = new Player("Bob");
donde el constructor jugador toma 1 argumento como una cadena.
Más abajo, en la clase SystemIO tengo un método que tiene acceso a la información de "jugador" de la instancia.
player.getName();
Cuando trato de hacer esto, la consola informa
SystemIO.java:339: Error: No se puede encontrar el símbolo
He comprobado que no estoy tratando de hacer referencia al nombre de la clase con un capital "jugador". Como dije, soy muy nuevo en Java y tratando de envolver mi cabeza alrededor de ella y yo creo que es un problema de alcance ... pero no estoy seguro.
Editar para añadir código reproducibles:
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());
}
}
Hacer jugador de una variable de clase.
Poner a alguien en su clase:
Player player;
y cambiar el código de su constructor para:
player = new Player("Bob");
Esto se llama un error de alcance. Una variable que desea ser accesible a todos los métodos de la clase, debe ser declarada en la clase y no en un método específico (en su caso, que lo hizo en el constructor)