注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 [业内传闻]今天,7月25日..
 帮助

Java:如何封装集合


2008-04-12 21:57:50
 标签:Java 封装 集合   [推送到技术圈]

版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
对于一般的成员变量,对其提供简单的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();
    }
}
 

本文出自 “子 孑” 博客,转载请与作者联系!





    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: