2016-09-17 4 views
-3

У меня есть класс модели Team. Мне нужно выполнить несколько операций над этим классом в разных классах, например Coach и Admin. Мой вопрос заключается в том, как я могу поддерживать один и тот же объект Team при создании всех других классов.Обмен объектами модели по классам

В классе TestDriver я использовал объект команды, чтобы создать Coach изначально. Но если я хочу создать новый Admin, мне нужно пройти тот же Team. Есть ли какой-нибудь образец, который мне нужен для этого?

//Model Classes 

public class Player { 
    String playerName; 
} 

public class Team { 
    List<Player> playerList; 
} 


//Class to modify model 

public class Coach { 
    Team team; 

    public Coach (Team team) { 
     this.team = team; 
    } 

    public void deletePlayer(Player) { 
     //Remove the player form team 
    } 
} 

public class Admin { 
    Team team; 

    public Admin (Team team) { 
     this.team = team; 
    } 

    public void addPlayer(Player) { 
     //Add the player to team 
    } 
} 

//Test Driver class 

public class TestDriver { 
    public static void main(String args[]) { 

     Team team = new Team(); 

     Coach coach = new Coach(team); 
     coach.deletePlayer(team); 

     //How to pass the same team 
     Admin admin = new Admin(???); 
     admin.addPlayer(team); 

    } 
} 

ответ

1

Это будет делать: Admin admin = new Admin(team);

Теперь оба экземпляра admin и coach будет иметь в виду то же team инстанции. Поэтому любые изменения, внесенные вами в team в одном, будут отражены в другом.

Вы должны узнать больше о том, как в Java переменные содержат только ссылки на фактический объект в памяти.

1

Используйте тот же объект/переменная team

Team team = new Team(); 

Coach coach = new Coach(team); 
coach.deletePlayer(team); 

Admin admin = new Admin(team); // <-- here 
admin.addPlayer(team); 
Смежные вопросы