2016-09-17 15 views
-3

私はモデルクラスTeamを持っています。私はCoachAdminのような異なるクラスでこのクラスに対して複数の操作を実行する必要があります。私の質問は、同じ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);

は今admincoachインスタンスの両方が同じ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); 
を使用します
関連する問題