当前位置:主页   - 电脑 - 程序设计 - JAVA
Java:如何封装集合
来源:网络   作者:   更新时间:2012-06-14
收藏此页】    【字号    】    【打印】    【关闭

  对于一般的成员变量,对其提供简单的getter/setter封装即可。而对于一个集合类,不能够这样做。

  对于一个简单的成员变量,可以这样:

class Athlete {
  private String name;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  // ......
}

  而如果是一个Set/List/Map或数组,应该:

  [1]初始化这个集合类;

  [2]提供对单个元素的add/remove;

  [3]提供加入另一个集合的方法。如果是基于此初始化,则先保证当前集合无元素;

  [4]对于getter方法,应该返回该集合的只读试图;

  [5]提供当前集合size。

public class Game {
  private Set<Athlete> players = new HashSet<Athlete>();// 1
  public void addPlayer(Athlete one) {// 2
    players.add(one);
  }
  public void removePlayer(Athlete one) {// 2
    players.remove(one);
  }
  public void addPlayers(Set<Athlete> set) {// 3
    Iterator<Athlete> iter = set.iterator();
    while (iter.hasNext())
      addPlayer(iter.next());
  }
  public void initializaPlayers(Set<Athlete> set) {// 3
    if (getAttendNumbers() > 0)
      players.clear();
    players.addAll(set);
  }
  public Set<Athlete> getAllPlayers() {// 4
    return Collections.unmodifiableSet(players);
  }
  public int getAttendNumbers() {// 5
    return players.size();
  }
}

  本文出自 “子 孑” 博客,请务必保留此出处http://zhangjunhd.blog.51cto.com/113473/71263

  本文出自 51CTO.COM技术博客

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明