Java:如何封装集合

 我来答
ijava学习网
2018-07-10 · 国内最优秀java资源共享平台
ijava学习网
国内最优秀的java免费资源共享及学习平台,专注从实战中学习与成长。主要包括教程、经验分享、知识、资讯、工具、手册、视频及各种资源下载。
向TA提问
展开全部
  1. 对于一般的成员变量,对其提供简单的getter/setter封装即可。而对于一个集合类,不能够这样做。 对于一个简单的成员变量,可以这样:

    class Athlete {
    private String name;

    public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = name;
    }
    // ......

  2. 而如果是一个Set/List/Map或数组,应该:
    [1]初始化这个集合类;
    [2]提供对单个元素的add/remove;
    [3]提供加入另一个集合的方法。如果是基于此初始化,则先保证当前集合无元素;
    [4]对于getter方法,应该返回该集合的只读试图;
    [5]提供当前集合size。

  3. 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();
    }

暮城曙光夜郎溪
2018-06-30 · TA获得超过177个赞
知道小有建树答主
回答量:498
采纳率:25%
帮助的人:74万
展开全部
用修饰词限定访问权限
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式