Team
を のコンテナと考えるとPlayer
、Team
クラスには を含むプロパティと、のプレーヤーPlayer
を追加、削除、クリアなどするためのアクセサ メソッドがあります。Team
もちろん、Team
クラスには独自のプロパティとメソッドがありPlayer
、チーム内のあらゆるデータ (プレイヤー数など) を利用する可能性があります。
この例では、継承に関連するトピックはありません。
クラスには、コンテナと「コンテナ」の関係があります(Artemの回答では適切な用語が使用されています)。
例えば:
class Team {
// the private property containing the players
// I use a Set here because each player is unique
private Set<Player> players;
public Team() {
// initializing the set as HashSet
players = new HashSet<Player>();
}
public void addPlayers(Player... players) {
// adding all players
for (Player p: players) {
this.players.add(p);
}
}
public Collection<Player> getPlayers() {
// returning a copy of the team's players
return new HashSet<Player>(players);
}
}
class Player {
// TODO player's properties such as name, age, feats, etc.
}
Player
次に、次のようにs を追加しますTeam
。
Team t = new Team();
// adding single player
t.addPlayers(new Player());
// adding an array of players
t.addPlayers(new Player[]{new Player(), new Player()});