У меня есть три разных класса, которым все нужно использовать экземпляры одного класса. Этот класс также может создавать несколько экземпляров самого себя, таких как player1, player2 и т. Д., И static не будет работать для этого, потому что это приведет к перезаписи старого имени.Экземпляры Java для объектов в разных классах
Я знаю, что я не должен использовать «новое» ключевое слово в последнем классе, но я не знаю другого пути.
public class Test{
public static void main(String[] args){
Player player1 = new Player("bob");
Player player2 = new Player("Hank");
System.out.println("Original Name: " + player1.getName());
System.out.println("Original Name 2: " + player2.getName());
Display dis = new Display();
dis.disp();
System.out.println("Changed Name: " + player1.getName());
System.out.println("Changed Name 2: " + player2.getName());
}
}
class Player{
private String pName = "";
public Player(){}
public Player(String name){
pName = name;
}
public void setName(String inName){
pName = inName;
}
public String getName(){
return pName;
}
}
class Display{
public void disp(){
Player player1 = new Player(), player2 = new Player(); //Unneeded
System.out.println("Player name: " + player1.getName());
System.out.println("Player name 2: " + player2.getName());
player1.setName("Joe?");
player2.setName("Billy?");
System.out.println("Player new name: " + player1.getName());
System.out.println("Player new name 2: " + player2.getName());
}
}
Что именно вы пытаетесь сделать? – Bhushan
изменить имя игрока и сохранить его статичным, но если я использую static, то игрок2 перезапишет player1 .. – user1062898
Что именно вы хотите сделать с таким утверждением 'new Player(), player2 = new Player();'? – Lion